XPath:按子节点的属性值获取节点

时间:2016-07-17 18:21:51

标签: xpath

人们,请你帮我解决这个XPATH。假设我有以下HTML代码

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

我需要构建一个XPath,它将选择<tr> <td>,其值为 text ,属性类等于可点击
我尝试了以下xpath:

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

但没有一个工作

任何帮助表示赞赏 感谢

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

如果您发现 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> tr的值tdtext(可能是另一个)属性类等于可点击,请使用@alecxe的答案。< / p>

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

td