2016-11-08 67 views

回答

2
#!/usr/bin/perl 
use warnings; 
use strict; 

use XML::LibXML; 

my $dom = 'XML::LibXML'->load_xml(string => '<r><p><c/></p></r>'); 
my ($n1) = $dom->findnodes('/r/p/c'); 
my ($n2) = $dom->findnodes('/r/p/c'); 
$n1->replaceNode('XML::LibXML::Element'->new('n')); 
print $dom; 
print $n1, $n2; 

输出:

<?xml version="1.0"?> 
<r><p><n/></p></r> 
<c/><c/> 
+0

为什么你在包名称周围有引号? – simbabque

+1

@simbabque:因为http://www.perlmonks.org/?node_id=980498和':: - >'太难看了。 – choroba

+0

@simbabque,他们正在保护自己免受远程可能性的影响,即存在一个名为“XML :: LibXML”的子文件。 Perl实际上允许你使用'XML :: LibXML ::'来解决这个问题。 – ikegami