日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁編程開發(fā)C#.NET → C#讀取XML中元素和屬性的值

      C#讀取XML中元素和屬性的值

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2013/3/23 23:27:37字體大。A-A+

      作者:西西點(diǎn)擊:1次評論:1次標(biāo)簽: XML

      • 類型:下載工具大。828KB語言:中文 評分:7.5
      • 標(biāo)簽:
      立即下載

      用C#讀取xml有很多方式,這里我就先使用XmlDocument讀取Xml,用一段代碼遍歷所有元素,并打印student的所有屬性和子節(jié)點(diǎn)的值。

      1、school.xml,如下:

      <?xml version="1.0" encoding="UTF-8"?>
      <!--啟明培訓(xùn)學(xué)校學(xué)生信息:
          1、一年級學(xué)生
          2、二年級學(xué)生 
        -->
        <school name="啟明培訓(xùn)學(xué)校">
          <grades>
           <grade id="1" name="一年級">
               <classes>
               <class id="101" name="一班">
                       <teachers>
                          <teacher teach="語文"><teacherName><![CDATA[王軍]]></teacherName></teacher>
                          <teacher teach="數(shù)學(xué)"><teacherName><![CDATA[周杰]]></teacherName></teacher>                             
                       </teachers>
                       <students>
                           <student id="10101">
                               <name>亢陽</name>
                                <sex>女</sex>
                           </student>
                           <student id="10102">
                               <name>田鎮(zhèn)南</name>
                               <sex>男</sex>
                           </student>
                           <student id="10103">
                               <name>劉嘉</name>
                               <sex>女</sex>
                           </student>
                       </students>
               </class>
              </classes>
           </grade>
              <grade id="2" name="二年級">
               <classes>
               <class id="201" name="二班">
                       <teachers>
                          <teacher teach="語文"><teacherName><![CDATA[胡軍]]></teacherName></teacher>
                          <teacher teach="數(shù)學(xué)"><teacherName><![CDATA[王潔]]></teacherName></teacher>            
                       </teachers>
                       <students >
                           <student id="20101">
                               <name>胡艷</name>
                                <sex>女</sex>
                           </student>
                           <student id="20102">
                               <name>張三</name>
                               <sex>男</sex>
                           </student>
                           <student id="20103">
                               <name>李四</name>
                               <sex>女</sex>
                           </student>
                       </students>
               </class>
              </classes>
           </grade>
      </grades>    
        </school> 

      2、XMLReader.cs (我用的是控制臺應(yīng)用程序,直接附上全部代碼吧)  

       1 using System;
        2 using System.Collections.Generic;
        3 using System.Linq;
        4 using System.Text;
        5
        6 using System.Xml;
        7
        8 namespace XMLReader
        9 {
      10     class XMLReader
      11     {
      12         static void Main(string[] args)
      13         {
      14             string xmlFilePath = "school.xml";
      15             XmlDocument doc = new XmlDocument();
      16             doc.Load(xmlFilePath);
      17
      18             //學(xué)校  使用xpath表達(dá)式選擇文檔中所有的schoo的子節(jié)點(diǎn)
      19             XmlNodeList schoolNodeList = doc.SelectNodes("/school");
      20             if (schoolNodeList != null)
      21             {
      22                 foreach (XmlNode schoolNode in schoolNodeList)
      23                 {
      24                     //通過Attributes獲得屬性名為name的屬性
      25                     string schoolName = schoolNode.Attributes["name"].Value;
      26                     Console.WriteLine("學(xué)校:" + schoolName);
      27
      28                     #region 年級
      29                     //通過SelectSingleNode方法獲得當(dāng)前節(jié)點(diǎn)下的grades子節(jié)點(diǎn)
      30                     XmlNode gradesNode = schoolNode.SelectSingleNode("grades");
      31                     if (gradesNode != null)
      32                     {
      33                         //通過ChildNodes屬性獲得grades的所有一級子節(jié)點(diǎn)
      34                         XmlNodeList gradeNodeList = gradesNode.ChildNodes;
      35                         if (gradeNodeList != null)
      36                         {
      37                             foreach (XmlNode gradeNode in gradeNodeList)
      38                             {
      39                                 Console.WriteLine("\t");
      40                                 Console.WriteLine("年級:" + gradeNode.Attributes["name"].Value + "   ID:" + gradeNode.Attributes["id"].Value);
      41
      42                                 #region 班級
      43                                 //通過SelectSingleNode方法獲得當(dāng)前節(jié)點(diǎn)下的classes子節(jié)點(diǎn)
      44                                 XmlNode classesNode = gradeNode.SelectSingleNode("classes");
      45                                 if (classesNode != null)
      46                                 {
      47                                     //通過ChildNodes屬性獲得classes的所有一級子節(jié)點(diǎn)
      48                                     XmlNodeList classNodeList = classesNode.ChildNodes;
      49                                     if (classNodeList != null)
      50                                     {
      51                                         foreach (XmlNode classNode in classNodeList)
      52                                         {
      53                              Console.WriteLine("  班級:" + classNode.Attributes["name"].Value + "    ID:" + classNode.Attributes["id"].Value);
      54
      55                                             #region 老師
      56                                             XmlNode teachersNode = classNode.SelectSingleNode("teachers");
      57                                             if (teachersNode != null)
      58                                             {
      59                                                 XmlNodeList teacherNodeList = teachersNode.ChildNodes;
      60                                                 if (teacherNodeList != null)
      61                                                 {
      62                                                     foreach (XmlNode teacherNode in teacherNodeList)
      63                                                     {                                              
      64                                                         XmlNode teacherNameNode = teacherNode.FirstChild;
      65                                                         XmlCDataSection cdate = (XmlCDataSection)teacherNameNode.FirstChild;
      66                                                         if (cdate != null)
      67                                                         {
      68                                             Console.WriteLine("   "+teacherNode.Attributes["teach"].Value + "老師:"+cdate.InnerText.Trim());                                                                                                       
      69
      70                                                         }
      71                                                     }
      72                                                 }
      73                                             }
      74                                             #endregion  老師
      75
      76                                                 #region 所有學(xué)生
      77                                                 XmlNode studentsNode = classNode.SelectSingleNode("students");
      78                                                 if (studentsNode != null)
      79                                                 {
      80                                                     XmlNodeList studentNodeList = studentsNode.ChildNodes;
      81                                                     if (studentNodeList != null)
      82                                                     {
      83                                                         foreach (XmlNode studentNode in studentNodeList)
      84                                                         {
      85                                                             Console.WriteLine("    學(xué)生:" + studentNode.Attributes["id"].Value);
      86
      87                                                             //獲取student的屬性值name和文本
      88                                                             XmlNode stu1 = studentNode.FirstChild;
      89                                                             XmlElement xe1 = (XmlElement)stu1;
      90                                                             if (xe1 != null)
      91                                                             {
      92                                                                 Console.WriteLine("        姓名:" + xe1.InnerText.Trim());
      93                                                             }
      94                                                             //獲取student的屬性值sex和文本
      95                                                             XmlNode stu2 = studentNode.LastChild;
      96                                                             XmlElement xe2 = (XmlElement)stu2;
      97                                                             if (xe2 != null)
      98                                                             {
      99                                                                 Console.WriteLine("        姓別:" + xe2.InnerText.Trim());
      100                                                             }
      101                                                         }
      102                                                     }
      103                                                 #endregion 所有學(xué)生
      104                                                 }
      105                                             }
      106                                         }
      107                                 #endregion 班級
      108                                     }
      109                                 }
      110                             }
      111                     #endregion  年級
      112                             Console.Write("\r\n按隨意鍵跳出");
      113                             Console.ReadKey();
      114                         }
      115
      116                     }
      117                 }
      118             }
      119         }
      120     }

      ok,運(yùn)行,如圖:

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(1)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)