【问题标题】:Xpath Multiple PredicatesXpath 多个谓词
【发布时间】:2013-10-30 09:31:20
【问题描述】:

我正在尝试使用 XPath 快速查找特定节点,但我的多个谓词似乎不起作用。我需要的 div 有一个特定的类,但还有 3 个其他类。我想选择第四个,所以我做了以下:

//div[@class='myCLass' and 4]

但是“4”被忽略了。有什么帮助吗?我是 XPath 新手。

谢谢。

【问题讨论】:

    标签: xpath


    【解决方案1】:

    只有当所有 div 元素具有相同的父元素时,接受的答案才能正确工作。否则使用:

    (//div[@class='myCLass'])[4]
    

    【讨论】:

    • 嗨@TheGateKeeper,我想支持上述答案并给它一个替代形状,更长一点但恕我直言更具可读性:/descendant::div[@class eq 'myClass'][4]
    【解决方案2】:

    如果 xpath 查询返回一个节点集,您始终可以使用 [OFFSET] 运算符来访问它的某个元素。

    使用以下查询访问与@class='myClass' 谓词匹配的第四个元素:

    //div[@class='myCLass'][4]
    

    @WilliamNarmontas 的答案可能是上述语法的替代方案。

    【讨论】:

      【解决方案3】:

      或者,

      //div[@class='myCLass' and position()=4]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-01
        • 2022-11-30
        • 1970-01-01
        相关资源
        最近更新 更多