オプション1:グラブすべてのデータ要素
をあなたが必要とするすべては、すべてのページのデータ要素を一覧表示する場合
Hash[doc.xpath("//span/@*[starts-with(name(), 'data-')]").map{|e| [e.name,e.value]}]
出力:
{"data-age"=>"50", "data-location"=>"London"}
オプション2:あなたは、あなたの結果はタグでグループ化したい場合は、タグ
により、当社グループの業績は、(おそらく、あなたが追加行う必要があり、ここでワンライナーです各タグの処理)では、次の操作を実行できます。はarです。タグでグループ化されたキー値のハッシュペアを含むX線。
オプション3:あなたは、プラグインのようなアプローチを好む場合はjQueryのデータセットのプラグインのような挙動
、以下はあなたにすべての鋸山ノード上dataset
メソッドを提供します。
module Nokogiri
module XML
class Node
def dataset
Hash[self.xpath("@*[starts-with(name(), 'data-')]").map{|a| [a.name,a.value]}]
end
end
end
end
その後、あなたは、単一の要素のためのデータセットを見つけることができます。
doc.at_css("span").dataset
または要素のグループのためのデータセットを取得:
doc.css("span").map(&:dataset)
例:
を以下は、dataset
メソッドの動作です上記。 HTMLに以下の行を考える:
<span data-age="50" data-location="London" class="highlight">Joe Bloggs</span>
<span data-age="40" data-location="Oxford" class="highlight">Jim Foggs</span>
出力は次のようになります。
[
{"data-location"=>"London", "data-age"=>"50"},
{"data-location"=>"Oxford", "data-age"=>"40"}
]
リンク質問が_creating_データ属性についてです(とRails固有のものです)「複製」、この質問はおよそそれらを_extracting_されます既存のHTMLからは重複していないので重複していません。 – matt