文本节点上的 X 路径或



我想捕获td标签内的文本,但只想要标签内没有的文本<strong><b>

例如,使用b标签的情况

<td class="">
<b>In Care Of Name</b>
text that I want to catch
</td>

对于这种情况,我可以使用此 xpath 表达式检索文本

//td[starts-with(., "In Care Of Name")]//text()[not(ancestor::b)]

我得到了预期的结果:

我想捕获的文本

或使用力的情况下

<td class="">
<strong>In Care Of Name</strong>
text that I want to catch
</td>

对于这种情况,我可以使用此 xpath 表达式检索文本

//td[starts-with(., "In Care Of Name")]//text()[not(parent::strong)]

我尝试使用以下表达式将这两个 xpath 连接在一个上:

//td[starts-with(., "In Care Of Name")]//text()[not(parent::strong) or not(ancestor::b)]

我得到了

在我想
捕捉的名字文本中

事实上,我得到了两个文本元素,这不是我所期望的。

任何关于问题的想法。我需要改变解决这个问题的方法吗?

提前谢谢。

这个XPath,

//td[starts-with(., "In Care Of Name")]/text()

将返回字符串值以In Care Of Name开头的td的直接文本节点子节点:

text that I want to catch

对于涉及tdb子级和strong级的两个 XML 变体。

有关 XPath 中文本节点和字符串值之间的差异的更多详细信息,请参阅XPath 中的测试 text(( 节点与字符串值

你想要not(A or B)(或者,not(A) and not(B)(而不是not(A) or not(B)

相关内容

  • 没有找到相关文章

最新更新