假设我有这样的XML,
<a><b>text</b></a>
和
<a>text</a>
如何编写通用xpath以匹配元素<a>
中的所有内容,而不管子节点(<b>
),而不是写/a/b
和/a
,因为我可以为元素<a>
提供任何子节点。
答案 0 :(得分:0)
要使第二个XML示例上的第一个XML示例和等于/a
的结果等于/a/b
,您可以使用以下表达式:
//a/descendant-or-self::*[not(*)]
XPath返回a
或a
本身的后代,无论哪个是叶元素,即没有子元素的元素。
对于演示,请考虑以下示例XML:
<root>
<a><b>text b</b></a>
<a>text a</a>
<a><c>text c</c></a>
<a><c><d>text d</d></c></a>
</root>
执行上面的XPath时,结果为:
<b>text b</b>
<a>text a</a>
<c>text c</c>
<d>text d</d>
<强> demo
强>