XPath选择具有包含指定文本的单元格的表行

KCl*_*ugh 49 html xpath

如何选择具有包含XPath指定文本的单元格的表格行?

Dim*_*hev 67

用途:

ExpressionSelectingTable/tr[td//text()[contains(., 'targetString')]]
Run Code Online (Sandbox Code Playgroud)

这意味着:

选择每个tr由表达式选择的任何表的子项,ExpressionSelectingTable并且(tr)具有至少一个td具有至少一个包含该字符串的文本节点后代的子项'targetString'

  • 我想你可能想要`ExpressionSelectingTable // tr [...]`,因为这些行可能是`thead`,`tbody`和/或`tfoot`的孩子. (4认同)
  • @Phrogz:是的,这是一个很好的观察,谢谢.我的html有点生疏...我故意这样做,因为表中可能有一个表,我不想选择外表.. (2认同)

小智 12

要选择包含某些文本的单元格的行,您将使用此XPath表达式:

//tr/td[normalize-space(text())="Banana"]/..

这将选择td包含文本"Banana"的任何内容,然后选择父项/..

  • 尽管问题要求“包含”查询,但当您希望文本除空格之外完全匹配时,我很高兴看到有关使用“normalize_space”的提示。 (2认同)