我試圖將新節點添加到現有XML文檔。如何使用Perl將新節點添加到NodeList(XML :: LibXML)
但是,嘗試使用XML::LibXML::NodeList結果中的推送功能不會更改文檔。
下面是一個例子:
#!/usr/bin/perl
use strict;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xml_string =
'<example>
<books>
<category id="1">
<book isbn="a" />
<book isbn="b" />
<book isbn="c" />
</category>
<category id="2"/>
<category id="3"/>
</books>
</example>';
my $doc = $parser->parse_string($xml_string);
my $category_nodelist = $doc->findnodes('//category[@id="1"]');
my $book_el = $doc->ownerDocument->createElement('book');
$book_el->setAttribute("isbn", "d");
$category_nodelist->push($book_el);
print $doc->toString(1);
請勿鏈接到確切的[用戶/版本URL](http://search.cpan.org/~shlomif/XML-LibXML-1.89/lib/XML/LibXML/NodeList.pm)。請使用其中一個永久鏈接[search.cpan.org/perldoc/...](http://search.cpan.org/perldoc/XML::LibXML::NodeList)[metacpan.org/module/... ](http://metacpan.org/module/XML::LibXML::NodeList)[p3rl.org](http://p3rl.org/XML::LibXML::NodeList)。 (除非你需要使用特定版本) – 2012-01-04 17:35:31
感謝您的評論!固定。 – HerbSpiral 2012-01-05 09:00:00