C# 如何在XPath中搜索空/空节点/元素?
我有下面的XML示例,我需要一个XPath查询来仅返回C# 如何在XPath中搜索空/空节点/元素?,c#,.net,xml,xpath,xpath-1.0,C#,.net,Xml,Xpath,Xpath 1.0,我有下面的XML示例,我需要一个XPath查询来仅返回node1和node3 <root> <node1 /> <node2 anyAttribute="anyText" /> <node3> </node3> <node4>anyText</node4> <node5> <anyChildNode /> </node5
node1
和node3
<root>
<node1 />
<node2 anyAttribute="anyText" />
<node3> </node3>
<node4>anyText</node4>
<node5>
<anyChildNode />
</node5>
</root>
任意文本
&)但一次仅适用于上述一点:
- 1<代码>/root/node()[非(node())]
-已测试并正常工作
/root/node()[字符串长度(规范化空格(text())=0]
-不工作(不知道为什么)我还限于
.NET
上的xPath 1.0
,因为它支持较新的版本
/root/*[not(@* or * or text()[normalize-space()])]
将根据请求仅选择node1
和node3
说明:
选择
root
的所有元素(注意与节点的差异)子元素,这些子元素没有属于属性(@*
)或元素(*
)或非空白文本(text()[normalize-space()]
)的子元素。+1可以正常工作;我想使用node()
会比*
快,但似乎我把它和“\\\”混淆了。