• Linq读取XML


    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);

    最终生成:

    <?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 = 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);

    最终生成:

    <Persons>
    <Person Name="tom" Age="18"/>
    <Person Name="jack" Age="20"/>
    </Persons>

     //读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 Files\Demo\Demo\ConsoleApplication2\XMLFile2.xml");
               foreach (XElement item in xd.Root.Descendants("Person"))//得到每一个Person节点,得到这个节点再取他的Name的这个节点的值
               {
                   Console.WriteLine(item.Attribute("Age").Value);//Person的节点的下得节点为Name的
               }
    

      



  • 相关阅读:
    描述cookies,sessionStorage和localStorage的区别
    利用Vue+ElementUi实现评论功能
    什么是盒子模型?
    个人认为比较干的博客帖子,长期维护更新
    problems_starter
    knowledge_starter
    删除某个目录下所有文件中的所有空行的最简单方法sed
    vscode快捷键备忘录
    C语言程序编译和运行,看这一篇就够了
    spring security坑1:通过code获取token报错
  • 原文地址:https://www.cnblogs.com/monian/p/2252820.html
Copyright © 2020-2023  润新知