« Return to Thread: [ruby-list:46164] libxml で検証結果を取り出すには

[ruby-list:46177] Re: libxml で検証結果を取り出すには

by OHARA Shigeki :: Rate this Message:

Reply to Author | View in Thread

大原と言います。

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@...>

 « Return to Thread: [ruby-list:46164] libxml で検証結果を取り出すには