[#46143] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — eiichi_maekawa@...

62 messages 2009/07/02
[#46153] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — "NARUSE, Yui" <naruse@...> 2009/07/03

成瀬です。

[#46165] Re: に関する1.8.6→1.8.7または、1.9へのバージョンアップ — eiichi_maekawa@... 2009/07/05

前川です。

[#46281] rubyの変数の扱いについて — "前川 映一" <eiichi_maekawa@...> 2009/08/17

前川です。

[#46283] Re: rubyの変数の扱いについて — "(株)ネットフォレスト 植田裕之" <ueda@...> 2009/08/17

植田と申します。

[#46146] 文字変換 — eiichi_maekawa@...

16 messages 2009/07/03
[#46147] Re: 文字変換 — Hidetoshi NAGAI <nagai@...> 2009/07/03

永井@知能.九工大です.

[#46148] Re: 文字変換 — eiichi_maekawa@... 2009/07/03

前川です。

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

From: "5.5" <5.5@...>
Date: 2009-07-05 12:57:14 UTC
List: ruby-list #46164
5.5 です。

libxml-ruby を使って XML 文書の検証結果を Logger オブジェクトに
記録しようとしたのですが,やり方が分かりませんでした。

まず,以下のスクリプトで,エラーメッセージがどのように出力される
か確かめます。

----
require 'rubygems'
gem 'libxml-ruby'
require 'libxml'

doc=LibXML::XML::Document.string "<root><foo /></root>"
dtd=LibXML::XML::Dtd.new "<!ELEMENT root (#PCDATA)>"

$stderr=open("stderr.txt", "w")
foo=open("foo.txt", "w")

begin
  doc.validate dtd
rescue
  foo.puts $!
end
----

コンソールには,期待どおり以下の二つのエラーが表示されました。

Error: Element root was declared #PCDATA but contains non text nodes at :1.
Error: No declaration for element foo at :1.

標準出力ではなくて標準エラー出力に書き出されました。
stderr.txt には何も書き出されません。
ということは,LibXML::XML::Document#validate メソッドは $stderr を
参照してないということですよね。
foo.txt には,

Error: No declaration for element foo at :1.

のみが書き出されます。

これでは検証結果を文字列として取得することができなさそうなのですが,
どうすればよいでしょうか?

-- 
5.5@moji.gr.jp

In This Thread

Prev Next