2014-07-01 46 views
1

HTML结构:的Xpath正从平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> 

我怎样才能得到所有的div(与 “行” 类“),其中一个标题(H1)符合我$search

我已经把现在(没有为最后一个元素工作,它也不会在下一标题停止):

//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> 

回答

0

这是一个漫长的:

//div[contains(concat(" ",@class," ")," row ")][preceding-sibling::div[contains(concat(" ",@class," ")," title ")][1][contains(h1,"<?php echo $search ?>")]] 

我会打破它成片:

你想所有具有类行的div ...

其中第一前同辈与类标题...

[preceding-sibling::div[contains(concat(" ",@class," ")," title ")][1] 

有一个包含您的搜索查询的H1

[contains(h1,"<?php echo $search ?>")]]