zoukankan      html  css  js  c++  java
  • 查询XML树

    XElement 类通过Element 和Attribut提供当前XML元素的子元素和属性集合。通过这两个集合对XML中的元素进行查询。

    查询步骤:

    1.通过XElement的Load()方法加载XMl文档的具体内容到内存

    2.通过Elements(),Element(),Attribute(),Attributes()查询。

       Element()返回具有指定名称的子元素。

       Elements()返回所有的子元素。

       Attribute()返回具有指定名称的属性

       Attributes()返回所有的属性

    static void UseSelectUserXML() {
                //查询年龄大于20的
                XElement root = XElement.Load("F:\XML\Userxml.XML");
                var query = from ele in root.Elements("User")
                            where int.Parse(ele.Attribute("Age").Value) > 20
                            select new { Name = ele.Attribute("Name").Value,Age = ele.Attribute("Age").Value};
                foreach (var item in query)
                {
                    Console.WriteLine(item);
                }     
                //查询特定的子元素
                var query1 = from ele in root.Elements("User")
                             from ele2 in ele.Elements()
                             where ele2.Name.LocalName == "Sex"
                             select new { Name = ele.Attribute("Name").Value, Sex = ele2.Value };
                foreach (var item in query1)
                {
                    Console.WriteLine(item);
                }
                //查询性别为女的用户
                var query2 = from ele in root.Elements("User")
                             from ele2 in ele.Elements()
                             where ele2.Name.LocalName == "Sex"
                             where ele2.Value == "FeMale"
                             select new { Name = ele.Attribute("Name").Value, Sex = ele2.Value };
                foreach (var item in query2)
                {
                    Console.WriteLine(item);
                }
                //对XML元素进行排序
                var query3 = from ele in root.Elements("User")
                             orderby ele.Attribute("Age").Value descending
                             select new { Name = ele.Attribute("Name").Value, Age = ele.Attribute("Age").Value };
    
    
                foreach (var item in query3)
                {
                    Console.WriteLine(item);
                }
    
                //基于上下文查询元素
                var query4 = from ele in root.Elements("User")
                             where ele.ElementsAfterSelf("User").Count() > 2
                             select ele;
                foreach (var item in query4)
                {
                    Console.WriteLine(item);
                }
              
            }

    在这里应该注意的是,查询年龄大于20 ,获取到具体数值的情况下,应使用Attribute(“Age”).Value,获取到特定元素

    ele2.Name.LocalName == 特定元素名
    排序也要到具体的值,就是value 不能对元素进行排序
  • 相关阅读:
    MySQL 的连接时长控制--interactive_timeout和wait_timeout
    查看MySQL 连接信息--连接空闲时间及正在执行的SQL
    mysql timestamp为0值时,python读取后的对象为None
    MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》
    读《大秦帝国》第三部
    golang mysql 如何设置最大连接数和最大空闲连接数
    如何查看MySQL connection id连接id
    JAVA配置环境变量
    PB常见功能实现代码
    PB中数据窗口自动换行
  • 原文地址:https://www.cnblogs.com/wangcongsuibi/p/8892269.html
Copyright © 2011-2022 走看看