ActiveSupportのXMLパーサの実装をLibXMLに変更できない件(2)
environment.rbを編集しても、ActiveSupportのXMLパーサの実装をLibXMLに変更できなかったので、xml_mini.rbを直接編集してXmlMini.backend = 'LibXML'としました。しかし、結局、LibXMLを使うことはできませんでした。やったことをメモしておこうと思います。
xml_mini.rbの編集
C:\ruby\lib\ruby\gems\1.8\gems\activesupport-2.3.2\lib\active_support\xml_mini.rb
XmlMini.backend = 'REXML'
を
XmlMini.backend = 'LibXML'
に変更。
サーバを起動して、ページを開いてみる。libxml_rubyをロードできないというエラー。
no such file to load -- libxml_ruby
リロードしてみると、今度は、nilでエラー。
You have a nil object when you didn't expect it! The error occurred while evaluating nil.parse
libxml_rubyのロード
原因としては、
C:\ruby\lib\ruby\gems\1.8\gems\libxml-ruby-0.9.7-x86-mswin32-60\lib\libxml.rb
require 'libxml_ruby'
がうまくいっていないよう。
C:\ruby\lib\ruby\gems\1.8\gems\libxml-ruby-0.9.7-x86-mswin32-60\ext\mingw\libxml_ruby.soというファイルはあります。でも拡張子が.rbじゃない。ここを参照すればいいのかな。
C:\ruby\lib\ruby\gems\1.8\gems\libxml-ruby-0.9.7-x86-mswin32-60\lib\libxml.rb
require 'libxml_ruby'
を
require '../ext/mingw/libxml_ruby'
にしてみる。けれども×。
"libxml_ruby"で検索してみると、下のサイトが見つかります。
一応、
require 'libxml/libxml_ruby'
としてみるが、やはり×。