Linq 解决 XML读写实例

作者:袖梨 2022-07-02

Linq To XML的核心类XElement,一个XElement表示一个节点,new XElement("Order"),创建一个名字为Order的标签,调用Add增加子节点,也是XElement 对象!

下面是几种LINQ操作XML的常见形式。

///写文件(生成节点性质的)

 代码如下 复制代码

XElement ePersons = new XElement("Persons"); 

XElement ptom = new XElement("Person"); //增加一个Person节点 

ptom.Add(new XElement("Name", "Tom"));//在ptom下再增加子节点 

ptom.Add(new XElement("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);

最终生成:

 代码如下 复制代码


 
    Tom
    18
 

 
    Jack
    20
 

 


///写文件(生成属性性质的)

 XElement ptom = new XElement("Person");  

 代码如下 复制代码

ptom.Add(new XAttribute("Name", "tom"));//添加XAttribute就生成属性  

ptom.Add(new XAttribute("Age", "18"));  

ePersons.Add(ptom);    

XElement pjack = new XElement("Person");  

pjack.Add(new XAttribute("Name", "jack"));  

pjack.Add(new XAttribute("Age", "20"));  

ePersons.Add(pjack);

最终生成:

 代码如下 复制代码


 
 

//读XML 读取节点格式的值

 代码如下 复制代码

 XDocument xd= XDocument.Load("XML文件地址");         

foreach (XElement item in xd.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 FilesDemoDemoConsoleApplication2XMLFile2.xml");             foreach (XElement item in xd.Root.Descendants("Person"))//得到每一个Person节点,得到这个节点再取他的Name的这个节点的值            

{       

Console.WriteLine(item.Attribute("Age").Value);//Person的节点的下得节点为Name的             } 

相关文章

精彩推荐