假设我有这个例子:
<div>
<p>some text <em>emphasized text</em> some other text</p>
<p><em>The paragraph I want to capture</em></p>
<p>some text <em>emphasized text</em> some other text and <em>other em text</em> until the end.</p>
</div>
我要选择的是第二段(但也可能是第三段或第一段)。问题是这里
p
和 em
是相邻的。 <p>
和 <em>
之间没有任何文字,开头和结尾都没有。所有文字都在里面<em>xyz</em>
。
如何通过 XPath 查询获取它?
我尝试了
//p/em
,//p/child:em
,//em/parent:p
,所有这些都选择了三个段落,因为所有em
都是p
的子级。
//p[starts-with(.,'./em')]
也没有帮助。
这个 XPath,
//p[count(node())=1][em]
将选择具有单个子节点(即
p
元素)的所有 em
元素。