2012-03-25 8 views
12
<p class="small" style="margin: 16px 4px 8px;"> 
<b> 
<a class="menu-root" href="#pg-jump">Pages</a> 
: 
<b>1</b> 
, 
<a class="pg" href="viewforum.php?f=941&start=50">2</a> 
, 
<a class="pg" href="viewforum.php?f=941&start=100">3</a> 
... 
<a class="pg" href="viewforum.php?f=941&start=8400">169</a> 
, 
<a class="pg" href="viewforum.php?f=941&start=8450">170</a> 
, 
<a class="pg" href="viewforum.php?f=941&start=8500">171</a> 
<a class="pg" href="viewforum.php?f=941&start=50">Next.</a> 
</b> 
</p> 

私は17237を含むa要素をキャッチしたいと思います。したがって、基本的には、次の要素からです。私は現在の位置を表すためにXを使用して、それを図式化した場合、それは次のようになり上記の要素を取得する方法は?

//a[.="Next."]/preceding::a[1] 

//a[.='Next.']//Not sure how to use preceding here 

答えて

26

あなたはこのxpathを使用することができます

------------------+------+------------------ 
preceding-sibling | self | following-sibling 
------------------|------|------------------ 
last() ... 2 1 | X | 1 2 ... last() 
------------------+------+------------------ 
+0

この図はとても便利ですを見つけるためにprecedingキーワードを進めます!私は長い間インデックス作成のルールに混乱してきました! – Skywalker326

1

これは古く、 "名前"の前にある要素がわからない場合はわかります。要素これはあなたのための解決策ではないでしょう。しかし、あなたがその要素を正確に見つけたいと思っていて、ページの上にいくつかの "171"要素があるならば。 それを他のものと区別する方法として、以下を使用できます。 XPathのの

//p[b[contains(., 'Next.')]]//a[contains(., '171')] 
3
//a[contains(text(), 'Next.')]/preceding::a[contains(text(), '171')] 

解説:<a>タグと一緒にtext方法を使用して、要素171

関連する問題