示例XML
<A>
<B>
<B1/>
<B2/>
<B3/>
<B4/>
<B5/>
</B>
<C>
<C1/>
<C2/>
<C3/>
<C4/>
<C5/>
</C>
</A>
查询: C# 当我读取A的子节点时,它返回节点B&amp; C与他们的子节点。
有没有可能让我只能得到B&amp; C没有各自的子节点
我需要用这种类型的xml和amp填充树。 xml文件非常大。所以我需要在扩展任何节点时加载子节点
要求 假设我尝试扩展A节点,我只想要B&amp; C,
如果我扩展B,那么我想要B1到B5
答案 0 :(得分:5)
使用XmlReader。 XmlDocument设计必须将整个Xml文档加载到内存中。
答案 1 :(得分:1)
如果您使用java,则可以实现SAX Handler构建DOM并忽略子项。
答案 2 :(得分:1)
这是一个措辞严厉的问题,所以我不完全确定你要做什么,但如果你只想要根(A)的所有子节点,那么就像这样使用带有XPath的XmlDocument:
XmlDocument doc = new XmlDocument();
doc.Load(xmlFile);
XmlNodeList nodes = doc.SelectNodes("/A/*");
foreach(XmlNode node in nodes){
//DO STUFF
}
答案 3 :(得分:0)
如果我理解正确的问题,你需要让孩子接收节点而不要让他们的孩子。这可以通过xquery来完成 (子:: *)
所以,如果你在A节点中应用它,它将给出B和C.如果你在B中应用它,那么它将给出B1-B5。