XPath如何让父母在节点内部兄弟姐妹

时间:2014-09-08 21:56:49

标签: xpath

这是我的HTML:

<tr>
         <td bgcolor="ffffff" height="14" width="112"><p class="boldblack">&nbsp;Price:</p></td>
         <td bgcolor="ffffff" width="296"><p class="cena2">9 000 $</p></td>
         <td bgcolor="ffffff"></td>
</tr>

我想采用9 000

我尝试了什么

.//p[contains(., 'Price:')]

它给了我Price:节点。现在,我如何从9000节点到达Price

注意

我不能像td [2]那样使用XPath,因为我有动态内容。我只知道我将拥有price节点,而他们的父母的兄弟将拥有9000 $

更新1

我不能依赖于课程,因为HTML的结构非常糟糕。

1 个答案:

答案 0 :(得分:2)

一种选择是简单地依靠类名(来自俄语的cenaprice):

//p[@class="cena2"]/text()

如果您想依赖前面的Price:标签:

//tr[td[1]/p[contains(., "Price:")]]/td[2]/p/text()

另一种选择是检查文本是否以$符号结尾:

//tr/td/p[ends-with(., "$")]/text()

如您所见,有多种选择,很难说哪一个更可靠,因为您没有显示完整的HTML代码。你甚至可以结合我提出的所有3个选项。