2017-05-13 12 views
-1

2つの式を1つのxpathにセメントする考えはありません。彼らはどちらも同じクラスの「ページ区切り」に分類されます。私はそれをループで使用する必要があります。私はこのように個別に試してみました:発現させるための2つのxpath式を1つにセメントする方法は?

//div[@class='pagination']//a/@href 
//div[@class='pagination']//a[contains(@class,'next')]/@href 

要素:

<div class="pagination"><p><span>Showing</span>1-30 
of 483<span>results</span></p><ul><li><span class="disabled">1</span></li><li><a href="/search?search_terms=pizza&amp;geo_location_terms=Los%20Angeles%2C%20CA&amp;page=2" data-page="2" data-analytics="{&quot;click_id&quot;:132,&quot;module&quot;:1,&quot;listing_page&quot;:2}" data-remote="true" data-impressed="1">2</a></li><li><a href="/search?search_terms=pizza&amp;geo_location_terms=Los%20Angeles%2C%20CA&amp;page=3" data-page="3" data-analytics="{&quot;click_id&quot;:132,&quot;module&quot;:1,&quot;listing_page&quot;:3}" data-remote="true" data-impressed="1">3</a></li><li><a href="/search?search_terms=pizza&amp;geo_location_terms=Los%20Angeles%2C%20CA&amp;page=4" data-page="4" data-analytics="{&quot;click_id&quot;:132,&quot;module&quot;:1,&quot;listing_page&quot;:4}" data-remote="true" data-impressed="1">4</a></li><li><a href="/search?search_terms=pizza&amp;geo_location_terms=Los%20Angeles%2C%20CA&amp;page=5" data-page="5" data-analytics="{&quot;click_id&quot;:132,&quot;module&quot;:1,&quot;listing_page&quot;:5}" data-remote="true" data-impressed="1">5</a></li><li><a href="/search?search_terms=pizza&amp;geo_location_terms=Los%20Angeles%2C%20CA&amp;page=2" data-page="2" data-analytics="{&quot;click_id&quot;:132}" data-remote="true" class="next ajax-page" data-impressed="1">Next</a></li></ul></div> 

答えて

1

を使用すると、2つのXPath式を組み合わせることができ、多くの方法があります。たとえば、結合演算子 "|"を使用する方法があります。それが正しい演算子であるかどうかは、達成したいことに依存します。残念ながら、達成したいことを教えてくれることを忘れてしまい、目的に合った正しい演算子ではないかもしれません。

+0

お返事ありがとうございました。私はxpath をこのような方法で書いて、ページネーションの両方のカテゴリをカバーするようにしたかったのです。私がしたいのと反対のものは: "// div [@ class = 'pagination'] // [not(@class)]/@ href" – SIM

+0

これはどういうことですか?さて、それは動作しますが、私は表現を簡潔に見せるように組み合わせていました。 // @ href | // div [@ class = 'pagination'] // a [contains(@ class、 'ajax-page')]/@ href] – SIM

+1

あなたはXを返すパス式と、Yを返す別のパス式を持っています。結合されたパス式は何を返すのですか? union演算子は、XまたはYのいずれかによって選択されたすべてのノードを返します。代替は、XとYの両方で選択されたすべてのものを返す "intersect"演算子、unionに似ていますが重複を排除しない "コンマ"(連結)演算子ですあなたが達成したいことがわからなければ、私たちはあなたにどのオペレータを使うべきかを伝えることはできません。 –

関連する問題