5

tdこれに似たテーブル内の特定の要素を見つけるために XPath を使用するように Perl をコーディングしています。

  <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>

私が欲しいのは、 string を含むノードを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 に答える