(X)HTML ページを読み込んだ後、メタ タグの「コンテンツ」属性の値を取得しようとしています。たとえば、次のようになります。
<meta name="author" content="John Smith" />
「John Smith」という値を抽出したいと思います。
私は XPath を使用してそれを行う方法を知っており、CSS は主に要素の選択を目的としていることを理解していますが、Nokogiri は次のように使用できると思われるカスタム CSS 疑似クラスの定義をサポートしています。
class CSSext
def attr(nodeset, tag)
nodeset.first.attribute_nodes.find_all {|node| node.name == tag}
end
end
doc = Nokogiri::HTML(open(someurl))
doc.css("meta[name='name']:attr('content')", CSSext.new)
ただし、これは次と同じ結果を返します
doc.css("meta[name='name']")
何を与える?Nokogiri は、CSS と XPath の両方の検索に同じエンジンを使用しているため、XPath で可能なことはすべて CSS でも実行できるはずです。属性値を抽出するにはどうすればよいですか?