我希望得到" square" (例如,201)。我试图这样做,如here所述,但它不起作用:
./li[attributeTitle='Этаж']
Html代码:
<div class = "A">
<ui class = "B">
<li>
<span class = "attributeTitle"> Floor </span>
<span class = "attributeValue"> 3 </span>
</li>
<! A random more items "li" >
<li>
<span class = "attributeTitle"> Square </span>
<span class = "attributeValue"> 201 </span>
</li>
<li>
<span class = "attributeTitle"> Nrooms </span>
<span class = "attributeValue"> 4 </span>
</li>
</ui>
</div>
感谢您的帮助。
答案 0 :(得分:1)
您可以在xpath中使用contains()
函数来检查文本是否包含一些字符串:
"//div[@class='attributeTitle'][contains(text(),'Square')]"
这会让你获得这个节点:
<span class = "attributeTitle"> Square </span>
要获取正下方的值节点,您可以使用following-sibling::span
:
"//div[@class='attributeTitle'][contains(text(),'Square')]/following-sibling::span[1]"
添加[1]
表示我们只想要第一个兄弟,以防有多个兄弟姐妹。您也可以使用[class='attributeValue']
来表示我们只想要拥有此特定类的兄弟姐妹,或者如果您信任只有1个兄弟,则根本不使用任何内容。