【问题标题】:XPath: Getting a node by attribute value of subnodeXPath:通过子节点的属性值获取节点
【发布时间】:2016-07-17 18:21:50
【问题描述】:

各位,请您帮我解决这个 XPATH。假设我有以下 HTML 代码

<table>
  <tr>
      <td class="clickable">text</td>
      <td>value1</td>
  </tr>
  <tr>
      <td>value2</td>
      <td>text</td>
  </tr>
</table>

我需要构建一个 XPath,它将选择具有 &lt;td&gt; 且值为 text 且属性类等于 clickable 的 &lt;tr&gt;。
我尝试了以下 xpath:

//tr[contains(.,'text')][contains(./td/@class,'clickable')]
//tr[contains(.,'text')][contains(td/@class,'clickable')]

但这些都不起作用

感谢任何帮助
谢谢

【问题讨论】:

    标签: xpath


    【解决方案1】:

    你快到了:

    //tr[contains(td/@class,'clickable') and contains(td, 'text')]
    

    使用xmllint的演示:

    $ xmllint input.xml --xpath "//tr[contains(td/@class,'clickable') and contains(td, 'text')]"
    <tr>
      <td class="clickable">text</td>
      <td>value1</td>
    </tr>
    

    【讨论】:

      【解决方案2】:

      如果您发现tr 的td 的值为text 和td(可能是另一个)的属性类等于可点击,请使用@alecxe 的答案。

      如果那是一个td 有两个条件,那么

      //tr[td[.='text' and @class='clickable']]
      

      【讨论】:

        猜你喜欢
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        相关资源
        最近更新 更多