检查XML中空子节点的最佳方法?

Has*_*ame 4 c# xml

我有一个最大3级深度的xml.现在通过使用C#或Xpath检查父节点下的所有子节点是否为空的最佳方法.

提前致谢.

Chr*_*ung 6

给出一份样本文件:

<foo>
  <bar>
    <baz/>
    <baz>Hello, world!</baz>
    <baz><qux/></baz>
  </bar>
</foo>
Run Code Online (Sandbox Code Playgroud)

此表达式告诉您哪些foo/bar子元素具有以下子元素:

foo/bar/*[count(*)>0]
Run Code Online (Sandbox Code Playgroud)

此表达式告诉您哪些子项foo/bar具有任何子文本节点:

foo/bar/*[text()]
Run Code Online (Sandbox Code Playgroud)

因此,要确保所有子项都为空(没有子元素或文本节点),请确保此表达式返回true:

not(foo/bar/*[count(*)>0 or text()])
Run Code Online (Sandbox Code Playgroud)