5

我正在编写一些 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的节点的元素。font/text()Showing

火柴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")]]

但这很丑陋,我希望能有更简洁的东西。请有人可以为我改进这个,或者确认这是最好和最简洁的方法?

4

1 回答 1

7

尝试这个:

//td[contains(font/text()[1], 'Showing ')]
于 2012-06-15T08:42:02.800 回答