【发布时间】:2017-03-22 21:24:23
【问题描述】:
<div>
<pre>
<span class="attr">id:</span>
<span class="text">1</span>
<span class="attr">time:</span>
<span class="text">42</span>
<span class="attr">length:</span>
<span class="text">74</span>
<span class="attr">id:</span>
<span class="text">2</span>
<span class="attr">time:</span>
<span class="text">57</span>
<span class="attr">length:</span>
<span class="text">74</span>
</pre>
</div>
这是我正在使用的一些 HTML 的模型。我正在尝试使用 XPATH 来查找与 id: 1 关联的时间量,并且只有 id: 1,而不是 id: 2。
//span[@class = 'attr'][text()='id:']/following-sibling::span[1][text()='1']
为我正确获取了 id 的“1”元素,但我尝试这样做
//span[@class = 'attr'][text()='id:']/following-sibling::span[1][text()='1']/following-sibling::span[1][text()='time:']/following-sibling::span[1]
为了在 id: 1 之后获取数字对我不起作用。我需要 xpath 仅识别某个 id 之后的时间,因此在时间元素之后使用单个跟随 id 对我不起作用,因为它还需要找到 id。甚至可以连续两次/三次跟随兄弟姐妹吗?有一个更好的方法吗?
【问题讨论】:
-
当然,您可以多次使用
following-sibling::。我已经测试了您的 XPath,并且两者都有效。 “对我不起作用”是什么意思? -
对不起,看起来确实是这样。在我的真实代码上只是混淆了我应该在最后一个跨度之后输入什么数字。无论如何谢谢:)