1

次に例を示します。

<html>
  <table>
    <tbody>
      <tr>
        <td>07 Oct 13</td>
        <td>a</td>
      </tr>
      <tr>
        <td>07 Sep 13</td>
        <td>b</td>
      </tr>
      <tr>
        <td>07 Sep 13</td>
        <td>c</td>
      </tr>
    </tbody>    
  </table>    
</html>

したがって、td[1] に一意の日付がある場合は、td[2] 要素を選択する必要があります。この例では、要素 "b" と "c" の日付が同じであるため、{a, b} のみを取得する必要があります。一意の日付のみを取得できます:

//table//td[(position() = 1 and not(. = preceding::*/td))]

Output: {07 Oct 13, 07 Sep 13}

しかし、どうすれば td[2] 要素だけを取得できますか?

4

1 に答える 1

0

以前のコメントで書いたように、一致する親要素を選択し、そこから興味深い子ノードを取得します。

私はこの XPath//tr[td[1] and not(./td[1] = preceding::*/td)]/td[2]を少し試してみました。

そこでtr、1sttdが以前に一致しなかった a を選択します。このうち、2 番目の要素trを選択します。td

その xPath を使用すると、目的の出力が得られます。

于 2013-10-24T12:08:29.557 に答える