我正在尝试规范化 XML 片段以避免在生成的 XML 中打印自闭合节点。(由于消费系统的限制,我希望对节点<test />
进行流式传输)。<test></test>
我尝试在 XML::LibXML::Node 中使用 toStringC14N() 方法来实现相同的目的,但我遇到了以下错误,我似乎也没有从谷歌那里得到任何帮助。
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 版