require 'nokogiri'
html = Nokogiri.HTML(open("bar.html"))
nodes = html.css("a")
nodes.each{|a| puts a.content}
- インストール
- libxml等が必要
- CentOS5 では標準の libxml が古すぎるので注意が必要
gem install nokogiri
html = Nokogiri.HTML(io)
xml = Nokogiri.XML(io)
xml = Nokogiri.XML("<a>foo</a>")
nodes = html.xpath("//a") # XPathによる検索
nodes = xml.css("a") # CSSセレクタによる検索
node = html.at_css("body") # at_をつけると最初の要素を返す
nodes = node.css("div") # ノード配下の検索も可能
tag = node.name # 名前(タグ名/text/commentなど?)
href = node['href'] # attribute
nodes = node.children # 子ノードの取得(parent/next/previousもある)
str = node.content # 文字列化したもの(子孫の内容も含む)
xml = Nokogiri.XML("<foo></foo>") # <foo>をルートとするXMLを作成
node = xml.root # ルートノード
child = node.add_child('<div>') # タグによる子ノード生成
child = node.add_child(foo) # 子ノードの追加(複数も可?)
child[0].content = "hoge" # childは追加した要素の配列になっている
next = node.add_next_sibling(foo) # nodeの後ろに追加
prev = node.add_previous_sibling(foo) # nodeの前に追加
copied = node.dup(0) # ノードのコピー(0:deep copy(default), 1:shallow copy)
xml.write_to($stdout) # xml文書を出力
node.write_to($stdout) # xmlの一部を出力
最終更新:2012年03月17日 20:10