按值选择XPath

时间:2017-01-26 15:09:33

标签: html xpath

我希望得到" 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>

感谢您的帮助。

1 个答案:

答案 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个兄弟,则根本不使用任何内容。