HTML结构:
<div class="title">
<h1>Some title</h1>
</div>
<div class="row">something</div>
... (repeats the same structure)
<div class="title">
<h1>Another title</h1>
</div>
<div class="row anotherclass">1 something</div>
<div class="row">2 something</div>
<div class="row">3 something</div>
<div class="title">
<h1>Some title</h1>
</div>
<div class="row">something</div>
如何获取上一个标题(h1(与我的$search
匹配的所有div(带有"行"类(?
我现在拥有的(不适用于最后一个元素,也不适用于下一个标题(:
//div[child::h1[contains(text(), "<?php echo $search ?>")]]
/following-sibling::div[contains(concat(" ", normalize-space(@class), " "), " title ")]
/preceding-sibling::div[contains(concat(" ", normalize-space(@class), " "), " row ")]
如果我搜索"另一个标题",输出应该是:
<div class="row anotherclass">1 something</div>
<div class="row">2 something</div>
<div class="row">3 something</div>
这是一个很长的问题:
//div[contains(concat(" ",@class," ")," row ")][preceding-sibling::div[contains(concat(" ",@class," ")," title ")][1][contains(h1,"<?php echo $search ?>")]]
我会把它掰成碎片:
你想要所有有类行的div。。。
//div[contains(concat(" ",@class," ")," row ")]
其第一个具有类标题的前一个同级。。。
[preceding-sibling::div[contains(concat(" ",@class," ")," title ")][1]
有一个h1,其中包含您的搜索查询
[contains(h1,"<?php echo $search ?>")]]