我正在尝试定位未位于标签旁边的数据(除了所有包含p的数据之外)
<p>
<strong>id1:</strong>data1<br />
data2<br />
<strong>id3:</strong>data3<br />
<strong>id4:</strong>data4
</p>
<p>
<strong>id1:</strong>data1<br />
data2<br />
<strong>id3:</strong>data3
</p>
关于如何获取data1,data2和data3并能够唯一标识它们的任何建议(例如data3在
strong[.='id3:']
之后并在<br/>
之前结束)编辑:
<br/>
之后,data2始终跟随data1谢谢
最佳答案
要查找紧跟在<strong>id1</strong>
之后的文本节点,请使用strong[.='id1']/following-sibling::text()[1]
(将p元素作为上下文节点)。
假设您知道会有这样的文本节点。更加严格的测试是strong[.='id1']/following-sibling::node()[1][self::text()]
,它将在strong元素之后找到第一个节点(任何类型),并返回它(假设它是文本节点)。
目前尚不清楚您想如何在示例中识别data2。
关于xpath - Xpath:查找标签中未包含的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918345/