#はじめに
Nokogiriでは、cssまたはat_cssで要素の名前を指定することでノードをセレクトできますが、逆にセレクトしているノードから要素名はどのように取得するのか気になったので、調べてみました。
#nameメソッドを使う
ノードの要素名取得はとてもシンプルです。以下のようなhtmlファイルがあったとします。
hello.html
<html>
<head>
<title>hello</title>
<meta charset="UTF-8">
</head>
<body>
<p>こんにちは</p>
</body>
</html>
at_cssでpタグを選択します。
sample.rb
require 'nokogiri'
html = open('hello_utf8.html').read
doc = Nokogiri::HTML.parse(html)
element = doc.at_css('p')
p element.name #=> 'p'
p element.parent.name #=> 'body'
parentなどを使って他のノードをセレクトし、要素名を取得することもできます。
#さいごに
普通はhtml構造を先に見てからスクレイピングするので、ノードから要素名を取得する需要はあまりないと思います^^;