我正在使用类似“学校/学生[4]”的XPath。 setNodeText
功能可以保存到硬盘吗?我的变化似乎只是在记忆中发生的。
答案 0 :(得分:1)
如果我理解正确,您正在尝试更改文档,然后将其写入磁盘。
use XML::LibXML qw( );
my $parser = XML::LibXML->new();
my $doc = $parser->parse_fh(...);
my $root = $doc->documentElement();
for my $node ($root->findnodes('//school/student[4]')) {
$node->removeChildNodes();
$node->appendText("New text");
}
open(my $fh, '>:raw', ...) or die $!;
print($fh $doc->toString());
答案 1 :(得分:0)
您可以使用未记录的方法getNodeAsXML
转储XML结构。输出不保证是有效的XML(例如没有标题),但它通常可以解决问题。
my $str = $xp->getNodeAsXML();
print $str;