-1
假设我有这样的个XML内匹配的所有子节点的内容,XPATH的父元素
<a><b>text</b></a>
和
<a>text</a>
我怎样写一个通用的XPath内匹配的所有内容元素<a>
不考虑子节点(<b>
)而不是写/a/b
和/a
,因为我可以为元素<a>
有任何子节点。
假设我有这样的个XML内匹配的所有子节点的内容,XPATH的父元素
<a><b>text</b></a>
和
<a>text</a>
我怎样写一个通用的XPath内匹配的所有内容元素<a>
不考虑子节点(<b>
)而不是写/a/b
和/a
,因为我可以为元素<a>
有任何子节点。
要得到的结果等于/a
关于你的第二个XML样本您的第一个XML样本和等于/a/b
,您可以使用下面的表达式:
//a/descendant-or-self::*[not(*)]
的a
或a
中的XPath返回后裔本身取其数值为叶片元件即无子元件。当上面的XPath是执行的结果将是
<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>
:
<b>text b</b>
<a>text a</a>
<c>text c</c>
<d>text d</d>
你意味着什么
为了演示,请考虑下面的示例XML像这样// //一个// text()'?这应该匹配'xml'样本中的'text' – Andersson
我尝试过// a // text()...我没有得到所需的输出..它似乎没有考虑子节点内的内容。 –