【发布时间】:2015-10-17 04:26:55
【问题描述】:
如何在.net 中使用XmlReader 获取根节点的顶级子节点(unknownA)?因为他们的名字未知,ReadToDescendant(string) 和 ReadToNextSibling(string) 将不起作用。
<root>
<unknownA/>
<unknownA/>
<unknownA>
<unknownB/>
<unknownB/>
</unknownA>
<unknownA/>
<unknownA>
<unknownB/>
<unknownB>
<unknownC/>
<unknownC/>
</unknownB>
</unknownA>
<unknownA/>
</root>
【问题讨论】:
-
当您说“获取节点”时,您是什么意思?您只是想获取元素名称,还是每个节点的所有内容或什么?另外,您是否考虑过使用
XElement之类的东西,而不是直接使用 XmlReader?它更容易使用。 -
@BrianRogers 我正在进行嵌套反序列化。是的,我考虑过
XmlDocument。但是XmlReader效率更高吧? -
您在寻找
XmlReader.Skip()吗? -
取决于——你的 XML 有多大?如果它很小,那就无所谓了。如果它很大,您仍然可以将
XElement与 XmlReader 结合使用,以非常小的内存占用通过 XML 流式传输。参见XNode.ReadFrom方法的备注和示例代码。 -
@dbc 谢谢!我终于用
Skip()了。