我的HTML看起来像这样:
<div class="parent">
<div class="url">
<a href="http://url.com/view/12">LINK</a>
</div>
<div class="stats">
<div class="a">12</div>
<div class="b">14</div>
</div>
</div>
<div class="parent">
<div class="url">
<a href="http://url.com/view/364">LINK</a>
</div>
<div class="stats">
<div class="a">133</div>
<div class="b">13</div>
</div>
</div>
<div class="parent">
<div class="url">
<a href="http://url.com/view/24324">LINK</a>
</div>
<div class="stats">
<div class="a">4</div>
<div class="b">46</div>
</div>
</div>
这是否可以让父母的孩子找到另一个孩子,同一个父母的孩子?
所以,我想得到第二个父母的b
课的内容。但我想找到它的href
参数。
喜欢那样 -
url
和a
且href
参数http://url.com/view/364
b
的内容
如果您不明白,我基本上需要XPath获取数字13
(b
的内容),但使用href
参数找到它。
这可能吗?如何做到这一点?
答案 0 :(得分:2)
更清晰的方法是(仅为了可读性而换行)
//div[@class = 'parent' and div[@class = 'url']
/a/@href = 'http://url.com/view/364']/div[@class = 'stats']/div[@class = 'b']
这比你自己找到的答案要好(实际上,你自己找到答案是件好事!)因为没有不必要的父轴(..
)步骤。
优于
(//a[@href='http://url.com/view/364']/following::div[@class='b'])[1]
因为following::div[@class = 'b']
选择了跟在上下文项之后的div
元素,即使它位于另一个div[@class = 'parent']
中。例如,如果文档看起来像
<html>
<div class="parent">
<div class="url">
<a href="http://url.com/view/364">LINK</a>
</div>
<div class="stats">
<div class="a">133</div>
</div>
</div>
<div class="parent">
<div class="url">
<a href="http://url.com/view/24324">LINK</a>
</div>
<div class="stats">
<div class="a">4</div>
<div class="b">46</div>
</div>
</div>
</html>
然后结果将是
<div class="b">46</div>
答案 1 :(得分:0)
我找到了答案。
这很容易做到 -
//*[@class="parent"]/div[@class="url"]/a[@href="http://url.com/view/364"]/../../div[@class="stats"]/div[@class="b"]
答案 2 :(得分:0)
嗯,更简洁的做法是使用following
轴,然后用class='b'
选择第一个节点。
"(//a[@href='http://url.com/view/364']/following::div[@class='b'])[1]"