2016-06-14 12 views
0

レビュー一覧から最初の画像を取得する際に助けが必要です。私は、最初の5人の査読者から最初のイメージだけを取得する必要があります。レビューはこのように見えます。レビュー一覧から最初の5つの画像を取得する方法

<div class='feedback item'> 
    <dl class='buyer-review'> 
     <dd class='photo-list'> 
      <ul> 
       <li> <img> </li> 
       <li> <img> </li> 
       <li> <img> </li> 
      </ul> 
     </dd> 
    </dl> 
    <dl class='buyer-additional-review'> 
     <dd class='photo-list'> 
      <ul> 
       <li> <img> </li> 
       <li> <img> </li> 
       <li> <img> </li> 
      </ul> 
     </dd> 
    </dl> 
</div> 

場合によっては追加のレビューがあり、まったくない場合もあります。場合によっては、イメージは追加のレビューで見つかることができ、メインのレビューでは見つからないことがあります。私がしなければならないことは、各査読者からただ一つのイメージを得ることです。

私はこのような何かやってみました: //div[position()<6]/dl/dd//ul/li[1]/img これは最初の5件のレビューから画像を取得しますが、画像がメインのレビューで、追加のレビューであるかどう時にはそれが5枚の以上の画像を返します。

だから私はこのような何かやってみました: //div[position()<6]/dl[1]/dd//ul/li[1]/img をしかし、画像が追加レビューではなく、メインのレビューで配置されている場合、時にはそれが5枚の未満の画像を返します。

基本的には、レビュー担当者ごとに1つのイメージを取得するだけで、メインレビューまたは追加レビューのどちらであっても問題ありません。

ありがとうございます!

+0

が、これはこれで今のところ動作するようになりました。 '(// div/dl [1]/dd/ul/li [1]/img)[位置()<6]' –

答えて

1

はこれを試してみてください://div/dl[position()<6]/dd/ul/li[1]/img

は、あなたはそれがあなたのXMLから思えるようDIVないDLの位置を取らなければなりません。

+0

私はそうすると、5枚以上の画像を取得します。レビューアとそのレビュー(主なものと追加のもの)。だから私は査読者1人につき2枚の画像を取得し、5人以上の査読者を選ぶでしょう。 –

+0

この場合、同じ買い手の画像を指定する属性が必要です。または、画像を1つの 'dl'にまとめることができます。そうでなければxslを書く必要があります。 – SomeDude

0

はこれらを試してみてください。

(//div[position()<6]//img)[1] 
 
//div[position()<6]/dl[.//img][1]//img

関連する問題