zoukankan      html  css  js  c++  java
  • Linq to xml:流式处理 XmlReader

    IEnumerable<string> grandChildData =
                    from el in StreamRootChildDoc(new StringReader(markup))
                    where (int)el.Attribute("Key") > 1
                    select (string)el.Element("GrandChild");

                foreach (string str in grandChildData)
                {
                    Console.WriteLine(str);
                }

    处理函数

     static IEnumerable<XElement> StreamRootChildDoc(StringReader stringReader)
            {
                using (XmlReader reader = XmlReader.Create(stringReader))
                {
                    reader.MoveToContent();
                    // Parse the file and display each of the nodes.
                    while (reader.Read())
                    {
                        switch (reader.NodeType)
                        {
                            case XmlNodeType.Element:
                                if (reader.Name == "Child")
                                {
                                    XElement el = XElement.ReadFrom(reader) as XElement;
                                    if (el != null)
                                        yield return el;
                                }
                                break;
                        }
                    }
                }
            }

    关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
    目前维护的开源产品:https://gitee.com/475660
  • 相关阅读:
    ElasticSearch : APT-GET安装方式
    python__基础 : 多继承中方法的调用顺序 __mro__方法
    TypeScript : 语法及特性
    Spring : JDBC模板, 事务和测试
    数据库 : 事物以及隔离性导致的问题
    MySQL数据库 : 函数和存储过程
    Java : java基础(6) 反射与枚举
    Java : java基础(5) Socket网络编程
    Java : java基础(4) 线程
    Java : java基础(3) IO流
  • 原文地址:https://www.cnblogs.com/starcrm/p/1362827.html
Copyright © 2011-2022 走看看