(ヽ´ω`) < 助けてほしいマン

わからないことを助けてほしいマンが書くブログ

(ヽ´ω`) < 1. XML(HTML)文章からDOMを作成

(ヽ´ω`) < DOMを作成

DOMを作成するにはNokogiri::XMLNokogiri::HTMLを使う。 引数としては読みだし可能なIOストリームならなんでもOK。

(ヽ´ω`) < 入力ソースの文字コードを指定する

Nokogiriではオブジェクトが内部で保持するデータは常にUTF-8であり、メソッドが返す値も常にUTF-8となる。

入力ソースの文字コードは、Nokogiri内部で使われているlibxml2によって自動判別されるが、常に正確とは限らない。
明示的に入力ソースの文字コードを指定したい場合は、以下の方法で指定する。

1つ目の引数に入力ソースを、3つ目の引数に文字コードを文字列で渡してやる。

2つ目の引数は、libxml2的には入力ソースのURIを渡されることを期待しているが、nilでもOK。

(ヽ´ω`) < DOM作成時にオプションを渡す

Nokogiri::(XML|HTML)を呼び出す際に、以下の方法でオプションを渡すことができる。

渡すことができるオプションと、その効果はhttp://nokogiri.org/Nokogiri/XML/ParseOptions.htmlで確認できる。 使うことがあると思われるのは、以下の4種類ぐらいか。

  • NOBLANKS 空ノードを削除。
  • NOENT 実体参照を置き換える。
  • NOERROR エラーが発生しても報告しない。
  • STRICT 厳密な解析を行い、異常が見つかった場合は例外をraiseする。通常の解析では、XML構造に異常箇所が見つかった場合でもlibxml2がある程度修復してくれる。

(ヽ´ω`) < 次は?

これでdocにDOMが作成された。次は、このdocに対してXPathCSSで要素を選択していく。