2016-07-30 86 views
0

如果指定包含特定文本,我想提取值。Xpath如果包含

輸入:

<section class='question-other-answers'> 
 

 
\t <article> 
 
\t \t <div class='user' </div> 
 
\t \t 
 
\t \t <div class='details'> 
 
\t \t 
 
\t \t \t <p class='content'> 
 
\t \t \t \t exampleXYZexample 
 
\t \t \t </p> \t 
 
\t \t </div> 
 
\t \t 
 
\t \t <div class='info'> 
 
\t \t \t <div class='rating'> 
 

 
\t \t \t \t <div class='rate-up'> 
 

 
\t \t \t \t \t <a>123456789</a> 
 

 
\t \t \t \t </div> 
 
\t \t \t \t 
 
\t \t \t \t <div class='rate-down'> 
 

 
\t \t \t \t \t <a>123456789</a> 
 

 
\t \t \t \t </div> \t 
 
\t \t \t </div> 
 

 
\t \t </div> 
 
\t \t 
 

 
\t </article> 
 

 

 
</section>

我想要做的是: 提取每rate-up值,如果<p class='content'>包含XYZ

我知道如何檢查內容包含XYZ

//section[@class='question-other-answers']/article/div[2]/p and contains (.,'XYZ') 

而且我知道如何讓rate-up

//section[@class='question-other-answers']/article/div[3]/div/div[1]/a 

但我不知道如何將它們結合起來

回答

0

謂詞可以包含一個節點檢查,以便

//section[@class='question-other-answers']/article[div[2]/p[@class = 'content' and contains (.,'XYZ')]]/div[3]/div/div[1]/a 

是方式來組合表達式。

+0

嗯,它不能正常工作。不管內容中是否有'XYZ',它都會提取。試試這個:http://pastebin.com/T2jLmtNw – audiophonic

+0

@audiophonic,看看編輯,你不清楚哪個元素你想分別識別你想要檢查的關係。 –