Ruby で XML をまじめに使いたい
標準添付の rexml は軽くやるぐらいなら十分だけど、名前空間関係がちょっと怪しい。今時 XML を真面目に使えないとなるとやばい。
RAA を検索してみると libxml-ruby がよさげなので試してみる。extconf.rb がなんだかしらんが全く通らないので該当部分でばっさりコメントアウト。extconf.rb の存在意義なし!!!
リファレンスの類が見当たらない。要素は ele = XML::Node.new(element_name[, content]) で作るみたい。便利だけど Node っていう名前にちょっと違和感が……属性は ele["attr_name"] = attr_value。DOM 実装を期待してたんだけど違うらしい。getElementsByTagName は Node#find みたいだし (find の引数は XPath なので全然違うが) あーやばい。コンテキストノードとカレントノードの違いを忘れそうだった。Node#find はトップレベルのコンテキストノードにレシーバを設定して云々、でいいのかな。カレントノードが XSLT のものだよなぁ。
名前空間関連はまだ調べてない。libxml だから大丈夫だと思う(てきとう。とりあえず学校へ。眠いっつうの。
関連エントリー
- taglibro の今後の予定 たぶんやらないけど、やりたいことを書いとく。 まず libxml-ruby を捨てて REXML を使う。もともと libxml-ruby ...
- XSLT と XPath の理解 とりあえずカレントノードとコンテキストノード。 カレントノード = current() で、コンテキストノード = self::node()...
- xmllint による XML の再インデント xmllint っていうツール使うと、改行やらインデントのない XML を綺麗にできる。このツールどこで入れたか知らないけど(というか cy...
- XSLT for-each でカレントドキュメントが変わる <xsl:for-each select="$document('some.xml')"> <xsl:apply-template sele...
- 名前空間が null? IRC ネタ。 2005年1月の指向性メモ に createElement()で作られたエレメントノードは名前空間がnullになるはずなのに...