• linq查询xml


    1.加载xml字符串

    XElement root = XElement.Parse(@"<?xml version='1.0' encoding='utf-8'?>
    <Items> 
      <Item> 
        <Id>1</Id>  
        <Name>Name1</Name>  
        <Description>Test1</Description>  
        <Children> 
          <Item> 
            <Id>1.1</Id>  
            <Name>Name1.1</Name>  
            <Description>Test1.1</Description> 
          </Item> 
        </Children> 
      </Item>  
      <Item> 
        <Id>2</Id>  
        <Name>Name2</Name>  
        <Description>Test2</Description> 
      </Item> 
    </Items>
    
        ");
    
                var elements = root.Elements("Item");//root下的第一层Item(Id为1和2)



    XElement firstItem = root.Element("Item").Element("Name"); //第一个Item下的Name(Id为1)


    var descendants = root.Element("Item").Descendants("Name");//第一个Item下的所有Name(包括Children下的,Id为1和1.1)


    var xElements=root.Descendants("Name");//root下的所有子代的Name(Id为1,1.1,2)

    2.直接加载文件:

    var users = XElement.Load("TemplateUser.config").Elements("user"); 

    var user = users.FirstOrDefault(); 

    var Account = user.Element("Account").Value.ToString();  

    3.XmlDocument转换为XDocument

    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xmlStr);   //xml字符串转成xml文档对象
                      

    XDocument xdoc =doc.ToXDocument(); //xmldocument转成xdoccument 扩展方法
    var eventId = xdoc.Document.Root.Element("EventID"); //根节点下的eventid节点
    if (eventId != null)
        {

              MessageBox.Show(eventId.Value); //15

        }

    扩展方法

    public static class XmlDocumentExtensions
        {
            public static XDocument ToXDocument(this XmlDocument document)
            {
                return document.ToXDocument(LoadOptions.None);
            }

            public static XDocument ToXDocument(this XmlDocument document, LoadOptions options)
            {
                using (XmlNodeReader reader = new XmlNodeReader(document))
                {
                    return XDocument.Load(reader, options);
                }
            }
        }

    4.xpath

    string xml = "<Users><User><Account>admin</Account><Pwd>123</Pwd></User><User><Account>admin1</Account><Pwd>1232</Pwd></User></Users>";
    var doc = XDocument.Parse(xml);
    var elements = doc.XPathSelectElements("//Account"); //admin admin1

    var tmp = doc.XPathSelectElements("//User/Account"); //admin admin1

    /*
    / 从根节点选取。
    // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
    . 选取当前节点。
    .. 选取当前节点的父节点。
    @ 选取属性。
    */

    From:http://www.cnblogs.com/xuejianxiyang/p/5377486.html

  • 相关阅读:
    Spring boot 整合 Mybatis + Thymeleaf开发web(一)
    JAVA截取字符串的几种方式
    【转】JAVA异常报错大全
    Linux中允许远程用户登录访问mysql的方法
    Ubuntu系统下将默认的python2.7升级到3.5
    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
    python将数据写入excel代码,python与office交互
    pyqt4桌面软件各种画布组合结构实例
    python之pyqt4的简单窗口布局以及信号和槽(上代码)
    python 005 正则表达式
  • 原文地址:https://www.cnblogs.com/xuejianxiyang/p/5377486.html
Copyright © 2020-2023  润新知