2016-07-30 60 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,看看编辑,你不清楚哪个元素你想分别识别你想要检查的关系。 –