« 佐賀県が気になる | トップページ | 昨日から電車が空いた »

2010年3月11日 (木)

Rubyで

mechanize を使って、Web コンテンツを取得できるところまでやって来れました。

これで、なんとなくマッシュアップなんてことができそうです。

それに、mechanize は、nokogiri を使用しているので、 html や xml のパースも可能なのですが、hpricot そして xml は、REXML の方が一般的な記述のような気がしますが、私はまだそれほどの xml 使いではないのでわかりません。

結局は、nokogiri のパースで目的は達成できたので問題はなくなりました。

そして、xml & xsl で、xml を html 変換をしようといろいろ調べたのですが、なかなか Ruby の XSLT が見つからなかったのですが、 nokogiri のレファレンス(rdoc) をのぞいて唖然。xslt があります。

こちらも、nokogiri で解決。
でも、今までは、 Web Browser で変換表示させていたので、呼び出し方が異なるのか、ファイルパスに課題発生。

xml は複数のファイルを xsl:document でつないでいるし、xsl も共通化のために import で複数ファイルにしているので、xml の中でスタイルシートを定義して変換する Web Browser と xml 、 xsl をそれぞれ指定する nokogiri では、相対パスの基準が異なるのです。
すべて同一フォルダに収めれば問題ないのですが、それはいや。

これは、import された xsl ファイルがさらに xsl ファイルを import する場合のパスの記述変えて、基準となるフォルダをそろえて解決。

Java や .NET ではやる気にならなかったのですが、やれば何とかなりますね。
”Nokogiri”ありがとう!

でも、こんな複雑なスタイルシートを書くよりは、直接 REXML でパースして出力した方が、数十倍簡単。コードもべらぼう少ない。

ただ、xsl の方が、参考書籍、資料がふんだんであることと、処理系が異なっても同じスタイルシートで処理できるのが利点ですが、やっぱり直接プログラムで処理した方が心と脳に良いです。

 

|

« 佐賀県が気になる | トップページ | 昨日から電車が空いた »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/193783/47785740

この記事へのトラックバック一覧です: Rubyで:

« 佐賀県が気になる | トップページ | 昨日から電車が空いた »