2014-10-20 4 views
0

님이 LibXML에 대해 질문이 있습니다.노드 마지막 부분에 LibXML 인쇄

[[email protected] 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(); 
} 

[[email protected] DAI_P2_10mdc]# 
[[email protected] 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

정말 전체 XML 파일입니까? –

+2

마지막 반은 무엇을 의미합니까? ''은''의 약식 일뿐입니다. 귀하의 데이터가 올바른지 확인하십시오. – Miller

+0

@Miller, 그는 ""의 마지막 부분을 썼지 만 부적절한 형식은 "마지막 부분"으로 표시했습니다. 결정된. – ikegami

답변

2

</uri> 

를 작성하지 않았다. 그것은

<uri/> 

후자가 쓴 equivalent

<uri></uri> 
당신은 그렇게 할 이유가 없다한다, 그러나 당신이 어떤 이상한 이유로이 마음에 들지 않으면, 당신이 사용할 수있는

local $XML::LibXML::setTagCompression = 0; 

을 serialize 할 호출 범위에 있습니다.