2017-09-17 14 views
0

whith助けが必要前</a > </li >
<ll > < aクラス= "ページ番号"のhref = " ... " /> < /李>
.....
<李> <クラス= "ページ番号"のhref = " ... " /> < /リチウム>
<リチウム> <クラス= "次ページ番号"のhref = " ... " >次</> < /李>
</ulの>は、私はこのHTMLを持っているXPathクエリ

ないテキスト前と番号(と要素が含まれている最初と最後のLiを選択する必要があります最後の李(ページ番号20が含まれているもの)を取得しようとWHE問題を持つ

//ul[ @class='page-numbers' ] 
    /li[ 
     not(
      a[ contains(@class, 'prev') ] 
     ) and 
     not(
      a[ contains(@class, 'next') ] 
     ) and 
     position() = 1 
    ]" 

:または次の) このXPathクエリは、私が必要とする最初の李(ページ番号1)を含むリチウムを返します。

//ul[ @class='page-numbers' ] 
    /li[ 
     not(
      a[ contains(@class, 'prev') ] 
     ) and 
     not(
      a[ contains(@class, 'next') ] 
     ) and 
     position() = last() 
    ]" 

//ul[ @class='page-numbers' ] 
    /li[ 
     not(
      a[ contains(@class, 'prev') ] 
     ) and 
     not(
      a[ contains(@class, 'next') ] 
     ) and 
     last() 
    ]" 

をしかし、それは動作しません:試してみました。最初の要素は空のnodeListを返し、2番目の要素はすべてのli(1〜20)を含むnodeListを返します。 誰も助けてもらえますか?

答えて

1

私はこのXPathはあなたを助けることができると思います。少し修正https://i.stack.imgur.com/XQTJ2.png

+0

、それが完璧に動作します:[1] [1] [、それは私の仕事だかを確認してください]

//ul/li[not(./a[contains(text(),'next')]) and not(./a[contains(text(),'prev')])][last()] | //ul/li[not(./a[contains(text(),'next')]) and not(./a[contains(text(),'prev')])][1]

を:[@ class = 'ページ番号']。 ( '@' class、 'prev')])ではな​​く、( a [( '@' class、 'next'を含む)// ul [@ class = 'page-numbers']/li [ ])] [last()]。どうもありがとうございました! –

関連する問題