3

これを明確に説明しなければ、事前に申し訳ありません。私は自分がやろうとしていることを明確にするために最善を尽くします。さらに面倒なことはありません...ページに一連の数字(スペースのみで区切られている)があり、角かっこは現在のページを示しているとします。

ページでは次のようになります。

[1] 2 3

HTMLは次のようになります。

<tr>
<td>

[<a href='link1.php'>1</a>] <a href='link2.php'>2</a> <a href='link3.php'>3</a> 

</td>
</tr>

現在のページ番号に基づいて次のページ番号を選択しようとしています。なんらかの形のfollowing-siblingを使用する必要があると思いますが、私が思いついたのは// tr / td / a / follow-sibling :: a [1]だけで、これは明らかに正しくありません。予想どおり、1ページ目では2を選択しますが、2ページ目では3を選択しません。[text()[contains(。、'[')]]を使用して現在のページを選択しようとしましたが、角かっこはアンカーの内側ではなく外側にあります。えっ!?

答えを貼り付けるのではなく、解決策とともに思考プロセスを説明していただければ幸いです。あなたの助けを楽しみにしています。

4

1 に答える 1

6

2の後の次のページは、次の場所にあります。

//tr/td/a[.='2']/following-sibling::a[1]

まず、文字列の内容に基づいて現在のページを選択し、//tr/td/a[.='2']そこから最初の次の兄弟を選択します。

現在のページを知らずにこれを行うには、代わりに「]」に続く要素を選択します。

//tr/td/text()[']'=normalize-space(.)]/following-sibling::a[1]

また、現在のページがない場合は、デフォルトで最初の要素になります。

//tr/td/( text()[']'=normalize-space(.)]/following-sibling::a | a )[1]
于 2010-02-13T18:13:31.523 に答える