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
  • 相关阅读:
    Windows32位与64位操作系统的区别【转】
    【C#多线程详解】
    auto_ptr
    #if 1......
    vector 向量容器
    删除可视图中的类不能彻底避免它重新被编译
    _tWinMain 与wWinMain 区别
    explicit 用法
    转:atoi函数的实现
    string类的实现
  • 原文地址:https://www.cnblogs.com/starcrm/p/1362827.html
Copyright © 2011-2022 走看看