Я пытаюсь заменить значение некоторых узлов в XML, используя анализатор файлов XML:LibXML
из пользовательского ввода.
Пример XML:
<header>
<id x_id="1">
<a>NA</a>
<b>NA</b>
<c>NA</c>
</id>
</header>
Код:
use strict;
use warnings;
use XML::LibXML;
print "Please specify node b content\n";
my $node_b = <STDIN>;
chomp $node_b;
my $template = "xx.xml";
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($template);
my($object0) = $doc->findnodes("/header/id/b/text()");
my $text0 = XML::LibXML::Text->new($node_b);
$object0->replaceNode($text0);
В настоящее время мой код работает, но он каким-то образом удалил </a>
из xml, когда Я пытался заменить Node B контента. И, при попытке заменить узел c, </a>
и </b>
также были удалены.