Linq读取XML
Linq To XML的核心类XElement,一个XElement表示一个节点,new XElement("Order"),创建一个名字为Order的标签,调用Add增加子节点,也是XElement 对象!
下面是几种LINQ操作XML的常见形式。
///写文件(生成节点性质的)
| XElement ePersons = newXElement("Persons");XElement ptom = newXElement("Person"); //增加一个Person节点ptom.Add(newXElement("Name", "Tom"));//在ptom下再增加子节点ptom.Add(newXElement("Age", "18"));ePersons.Add(ptom); | 
XElement pjack = new XElement("Person");
pjack.Add(new XElement("Name", "Jack"));
pjack.Add(new XElement("Age", "20"));
ePersons.Add(pjack);
最终生成:
<?xml version="1.0" encoding="utf-8" ?>
<Persons>
<Person>
<Name>Tom</Name>
<Age>18</Age>
</Person>
<Person>
<Name>Jack</Name>
<Age>20</Age>
</Person>
</Persons>
///写文件(生成属性性质的)
| XElement ptom = newXElement("Person");ptom.Add(newXAttribute("Name", "tom"));//添加XAttribute就生成属性ptom.Add(newXAttribute("Age", "18"));ePersons.Add(ptom);XElement pjack = newXElement("Person");pjack.Add(newXAttribute("Name", "jack"));pjack.Add(newXAttribute("Age", "20"));ePersons.Add(pjack); | 
最终生成:
<Persons>
<Person Name="tom" Age="18"/>
<Person Name="jack" Age="20"/>
</Persons>
//读XML 读取节点格式的值
| XDocument xd= XDocument.Load("XML文件地址");      foreach(XElement item inxd.Root.Descendants("Person"))//得到每一个Person节点,得到这个节点再取他的Name的这个节点的值          {             Console.WriteLine(item.Element("Age").Value);//Person的节点的下得节点为Name的          }注释:doc.root(得到根节点的XElement对象).XElement(“tagname”)方法得到的就是节点下第一个名字为tagname的节点。如果doc.root。XElements(复数形式)就是得到所有的子节点,Descendants("“tagname”")子孙节点 | 
//读XML 读取属性格式的值
| XDocument xd= XDocument.Load(@"D:\Program Files\Demo\Demo\ConsoleApplication2\XMLFile2.xml");          foreach(XElement item inxd.Root.Descendants("Person"))//得到每一个Person节点,得到这个节点再取他的Name的这个节点的值          {              Console.WriteLine(item.Attribute("Age").Value);//Person的节点的下得节点为Name的          } | 
 
                    
                
 

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号