c# - 读取 xml 子树和后代 C#

标签 c# .net xml readxml

我有一个包含多个子树的 XML 文件,这些子树中也可以包含子树。像这样:

<File>
<A>...</A>
<B>...</B>
<C>
..
<D>..</D>
</C>
</File>

(“..”是子树中的元素)。我如何读取每个子树然后读取它的所有元素(如果这个子树包含一个子树我想单独读取它和他的所有元素)?

最佳答案

XmlReader 支持为此目的读取子树;如果您愿意,可以使用子树阅读器作为其他模型(XmlDocumentXElement 等)的输入:

using(var reader = XmlReader.Create(source))
{
    reader.MoveToContent();
    reader.ReadStartElement(); // <File>
    while(reader.NodeType != XmlNodeType.EndElement)
    {
        Console.WriteLine("subtree:");
        using(var subtree = reader.ReadSubtree())
        {
            while(subtree.Read())
                Console.WriteLine(subtree.NodeType + ": " + subtree.Name);
        }
        reader.Read();
    }
    reader.ReadEndElement(); // </File>
}

关于c# - 读取 xml 子树和后代 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074457/

相关文章:

c# - 未为此项目设置 OutputPath 属性

c# - long 在 64 位机器上

.net - Windows Server 2008 是否支持 Office 2003 互操作?

c# - 并发调用时可以等待损坏值

sql - 如何转换 SQL Server XML 类型值 (xsi :nil) of DateTime to null

ios - 来自 iOS 的 XPath 调用无法正常工作

c# - 检测 MongoDB 状态

c# - 使用 Html Agility Pack 从 HTML BODY 节点中提取内部文本

c# - .NET 中的 "US Eastern Standard Time"与 "Eastern Standard Time"

javascript - jQuery XML 导出或简单 JavaScript 文件下载