大原と言います。
From: "5.5" <
5.5@...>
Subject: [ruby-list:46164] libxml で検証結果を取り出すには
Message-ID: <
4A50A326.5050705@...>
Date: Sun, 5 Jul 2009 21:57:14 +0900
> libxml-ruby を使って XML 文書の検証結果を Logger オブジェクトに
> 記録しようとしたのですが,やり方が分かりませんでした。
>
> まず,以下のスクリプトで,エラーメッセージがどのように出力される
> か確かめます。
LibXML では LibXML::XML::Error#set_handler メソッドで
エラーハンドリング用の処理を登録することができるようになっています。
http://libxml.rubyforge.org/rdoc/classes/LibXML/XML/Error.htmlデフォルトでは、エラーを STDERR に出力するメソッドが登録されていますが、
これを set_handler で所望の処理を行うように登録してやると良いと思います。
Logger = File.open("validate.log", "a+")
doc=LibXML::XML::Document.string "<root><foo /></root>"
dtd=LibXML::XML::Dtd.new "<!ELEMENT root (#PCDATA)>"
begin
LibXML::XML::Error.set_handler { |error|
Logger.puts error.message
}
doc.validate(dtd)
rescue => e
puts e
end
----
OHARA Shigeki (大原 重樹) <
os@...>