我正在编写一些 Perl 代码以使用 XPath 定位表中的特定 td
元素,看起来与此类似
<table>
<tr>
<td>...</td>
<td><font color="white" face="verdana, Helvetica, Arial" size="2">Showing <b>1</b>-<b>100</b> of <b>200</b> total</font></td>
<td>...</td>
<td>...</td>
</tr>
</table>
我想要的是找到一个 td
元素,它有一个包含字符串 Showing
的 font/text()
节点。
匹配 contains(., "Showing")
直接比较效果很好:
//td[font/text()="Showing "]
但我想使用contains()
XPath 函数,这样匹配更灵活。
我试过了
//td[contains(font/text(), "Showing ")]
但这会引发错误
XPath failed due to: A sequence of more than one item is not allowed as the first argument of contains()
我已经成功地实现了我想要的
//td[font/text()[contains(., "Showing")]]
但这非常难看,我希望能有更简洁的东西。请有人帮我改进一下,或者确认这是最好和最简洁的方法吗?
最佳答案
试试这个:
//td[contains(font/text()[1], 'Showing ')]
关于xml - 包含给定文本节点元素的 XPath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11047174/