XPATH用于匹配父元素中所有子节点的内容

时间:2017-03-17 11:03:32

标签: xml xpath

假设我有这样的XML,

<a><b>text</b></a>

<a>text</a>

如何编写通用xpath以匹配元素<a>中的所有内容,而不管子节点(<b>),而不是写/a/b/a,因为我可以为元素<a>提供任何子节点。

1 个答案:

答案 0 :(得分:0)

要使第二个XML示例上的第一个XML示例等于/a的结果等于/a/b,您可以使用以下表达式:

//a/descendant-or-self::*[not(*)]

XPath返回aa本身的后代,无论哪个是叶元素,即没有子元素的元素。

对于演示,请考虑以下示例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