結果の XML で自己終了ノードが出力されないように、XML フラグメントを正規化しようとしています。(消費システムの制約により、ノード<test />
をストリーミングしたい)。<test></test>
XML::LibXML::Node で toStringC14N() メソッドを使用して同じことを達成しようとしましたが、次のエラーが発生し、Google からも助けが得られないようです。
use XML::LibXML;
my $tagName = 'testtag';
my $tagValue = '';
my $doc = XML::LibXML->createDocument->new('1.0', 'UTF-8');
my $element = $doc->createElement($tagName);
$element->appendText($tagValue);
print "\nOut=>".$element->toStringC14N();
出力:
Failed to convert doc to string in doc->toStringC14N at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/XML/LibXML.pm line 1328.
LibXML.cの次のメソッドまで、エラーを追跡することしかできませんでした
xmlDocDumpMemory(self, &result, &len);
「toString()」がうまく機能しているように見えるので、私が間違っていることについてはわかりません。
perl v5.8.8 & XML::LibXML バージョン 1.88 を使用しています