【发布时间】:2019-09-10 10:35:31
【问题描述】:
我有以下 XML 示例,我需要一个 XPath 查询来返回 only node1 和 node3。
<root>
<node1 />
<node2 anyAttribute="anyText" />
<node3> </node3>
<node4>anyText</node4>
<node5>
<anyChildNode />
</node5>
</root>
换句话说,一个 XPath 查询返回所有节点(同时):
- 没有属性
- 没有子节点
- 没有或只有空格的内容
- 对于 1.
/root/node()[not(node())]- 经过测试并且可以正常工作 - 对于 2.
/root/node()[not(@*)]- 经过测试并且可以正常工作 - 对于 3.
/root/node()[string-length(normalize-space(text())) = 0]- 不工作(不知道为什么)
是的,我知道,我可以同时使用上面的 3 个变体,但我想避免它,我认为只搜索空节点/元素应该有一个简单的方法,或者?
我也仅限于xPath 1.0 上的.NET,因为there is no progress 支持较新的版本。
【问题讨论】:
标签: c# .net xml xpath xpath-1.0