我对这个问题Xpath Get elements that are between 2 elements也有类似的问题。但在我的具体情况下,html可能会有所不同,我不能使用第二个元素的文本
基本上我的结构如下:
<h1>Account Information</h1>
<a class="null" href="http:...">Remarks</a>
<a class="null" href="http:...">Owner Information</a>
<b>Account Detail</b>
<a class="null" href="http:...">Industrial</a>
<a class="null" href="http:...">land</a>
<b >Transfers</b>
<a class="null" href="http:...">11111</a>
<a class="null" href="http:...">22222</a>
所以我希望在b ='帐户详细信息'和可以改变文字的下一个b之间获取<a>
。
对于这种情况,我使用了2nd answer of question above
的版本//a[preceding-sibling::b='Account Detail' and following-sibling::b]
对于这种情况可行,因为在b ='帐户明细'后只有一个b 我得到了
[工业,土地]
但是,如果我们在b ='帐户明细'后面有多个<b>
但如果我们有多个<b>
<h1>Account Information</h1>
<a class="null" href="http:...">Remarks</a>
<a class="null" href="http:...">Owner Information</a>
<b>Account Detail</b>
<a class="null" href="http:...">Industrial</a>
<a class="null" href="http:...">land</a>
<b class="">Permits</b>
<a class="null" href="http:...">12-12-222</a>
<a class="null" href="http:...">22-2-22</a>
<b >Transfers</b>
<a class="null" href="http:...">11111</a>
<a class="null" href="http:...">22222</a>
结果是:
[工业,土地,12-12-222,22-2-22]
这不是理想的行为
有什么建议吗? 提前谢谢
答案 0 :(得分:1)
尝试使用以下XPath来获取所需的节点:
//a[preceding-sibling::b[1]='Account Detail' and following-sibling::b]
preceding-sibling::b[1]='Account Detail'
打算在<b>
内容
'Account Detail'
的锚点