XPath找到祖先没有特定类的后代

时间:2016-07-08 12:19:18

标签: html xml xpath

尝试创建XPath以在我的网站上查找具有特定标签的输入元素。但是,如果它的祖先是一个特定的div,我希望它不被发现。

假设我们获得了以下HTML:

<div class="content">
    <div class="abc">   
        <div>
            //some other elements
        </div>
        <div>
            <h2>Name</h2>
            <input></input>
        </div>
    </div>

    <div>   
        <div>
            //some other elements
        </div>
        <div>
            <h2>Name</h2>
            <input></input>
        </div>
    </div>
</div>

我只想在没有周围div“abc”的div中找到输入的名称。

我有这个只在abc包装器中找到名称输入但不能让它找到相反的方式:

//div[contains(@class, 'content')]//div[contains(@class, 'abc')]//descendant::h2[.='Name']/following-sibling::input

我以为我可以在not()周围使用contains(abc)函数,如下所示:

[not(contains(@class, 'abc'))]

但它不起作用。

1 个答案:

答案 0 :(得分:1)

此XPath将选择字符串值等于h2的所有"Name"元素,而不是具有div的{​​{1}}的后代:

class = 'abc'