2009-07-24 5 views
22

は今のところ私は正常これでHTMLページから完全な要素をつかん:IMGタグから "SRC"を解析するXPath?

<img src="http://example.com/img.jpg" class='photo-large' /> 

しかし、私は唯一のSRCのURL(http://example.com/img.jpg)が必要です:

//img[@class='photo-large'] 

例えばそれは、これを返します。どんな助け?

答えて

53

あなたは自分自身にこれに答えることに非常に近いので、私はあなたのためにそれに答えることに幾分躊躇しています。しかし、次のXPathはあなたが望むものを提供するはずです(もちろんソースはXHTMLです)。

//img[@class='photo-large']/@src 

さらなるヒントについては、W3 Schoolsをご覧ください。彼らには、そのようなことに関する優れたチュートリアルや素晴らしいリファレンスもあります。

9

この作品Hpricotを使用して:あなたは一つの画像が複数ある場合は

doc.at('//img[@class="photo-large"]')['src'] 

を、以下の配列を与える:

doc.search('//img[@class="photo-large"]').map do |e| e['src'] end 

しかし、鋸山many times faster、それである“can be used as a drop in replacement” Hpricotのために。
ここで属性を選択するため、このXPathが働いている鋸山のバージョン、:

doc.at('//img[@class="photo-large"]/@src').to_s 

や多くの画像のために:

doc.search('//img[@class="photo-large"]/@src').to_a 
+2

この質問時につまずき、私は助けることはできませんが不思議:あなたが参照ルビー関連depenciesが何を答えるのですか?私には青いもののように見えます。 –

+0

@FabianPas私は自分自身に同じ質問:D –

+0

母、それはしばらくしていますか? :p –

0

が// IMG/@のSRC

あなただけ行くことができます画像のリンクが必要な場合はこれを使用します。

例:

<img alt="" class="avatar width-full rounded-2" height="230" src="https://avatars3.githubusercontent.com/...;s=460" width="230"> 
関連する問題