猿问

C#获取xml文档中的所有节点但忽略嵌套节点

我有一个 xml 文档,我需要在其中迭代父节点的直接后代的所有节点。


例如,我有以下 xml 文档


<root>

  <node1>val1</node1>

  <node2>val2</node2>

  <nodes>

    <nestedNode>nestedvalue</nestedNode>

  </nodes>

</root>

我有以下代码可以获取所有元素:


XmlNodeList nodes = doc.SelectNodes("//*");

这将返回节点 1、节点 2 和嵌套节点。我想要的只是 node1 和 node2 并忽略任何嵌套值。


在此先感谢您的帮助。


POPMUISE
浏览 329回答 1
1回答

胡子哥哥

要选择作为根元素的子元素的元素,您可以使用 xpath:/root/*或者一般来说:/*/*您不应遍历此处的所有后代 (&nbsp;//...),因为这将遍历文档中的所有元素。您必须添加额外的过滤,这会使查询变得不必要地复杂://*[parent::*[not(parent::*)]]但是,您要过滤掉没有其他子元素的元素,因此需要添加条件not(*):/*/*[not(*)]
随时随地看视频慕课网APP
我要回答