Xpath:选择除具有特定属性的元素之外的所有元素
Posted
技术标签:
【中文标题】Xpath:选择除具有特定属性的元素之外的所有元素【英文标题】:Xpath: Select All elements except element with specific attribute 【发布时间】:2022-01-03 13:39:21 【问题描述】:我需要选择<p>
节点中的文本,并排除span
中属性为class="DoNotTranslate"
的所有文本
例子:
<table>
<p>Table0
</p>
<ol>
<li>
<span class="DoNotTranslate">add_punctuation</span>
</li>
<li>
<span class="DoNotTranslate">alternate_graphic</span>
</li>
</ol>
<p>Table1
<span class="DoNotTranslate"><span class="ScreenElement">call_number</span></span>
</p>
</table>
预期结果:
<p>Table0</p>
<p>Table1</p>
我尝试了下面的 Xpath,但它不起作用。
//p/node()[not (@class="DoNotTranslate")]
任何其他选择将不胜感激。
【问题讨论】:
【参考方案1】:你可以通过使用任何一个来足够接近
//p/text()
或
//p/text()/normalize-space()
这些应该让你得到<p>
elements 的文本,而不是它们的<span>
子元素:
Table0
Table1
【讨论】:
以上是关于Xpath:选择除具有特定属性的元素之外的所有元素的主要内容,如果未能解决你的问题,请参考以下文章