得到了一个关于LibXML的问题我希望所有人都可以提供帮助。
[root@server DAI_P2_10mdc]# cat test.pl
#!bin/perl
BEGIN { chomp(my $wd = `pwd`); unshift @INC, "$wd/lib/perl5/5.20.1"; unshift @INC, "$wd/lib/perl5/5.20.1/x86_64-linux"; unshift @INC, "$wd/lib/perl5/site_perl/5.20.1/x86_64-linux"; unshift @INC, "$wd/lib/perl5/site_perl/5.20.1";}
use strict;
use warnings;
use XML::LibXML;
my $TEMPLATE = "DownConvertJobTemplate.xml";
my $parser = XML::LibXML->new();
my $ADI_ORIG = $parser->parse_file($TEMPLATE);
foreach my $node ($ADI_ORIG->findnodes('//job/output_group/file_group_settings/destination')) {
print $node->toString();
}
[root@server DAI_P2_10mdc]#
[root@server DAI_P2_10mdc]# ./test.pl
<destination>
<uri/>
</destination>
实际XML文件内容:
<file_group_settings>
<rollover_interval nil="true"/>
<destination>
<uri></uri>
</destination>
</file_group_settings>
为什么我只收到<uri>
的后半部分?
答案 0 :(得分:2)
它没有写
</uri>
你声称,它写了
<uri/>
后者是equivalent到
<uri></uri>
你没有理由这样做,但如果你因为任何奇怪的原因不喜欢这个,你可以使用
local $XML::LibXML::setTagCompression = 0;
在您的序列化调用范围内。