Perl:你可以使用XPath的setNodeText函数保存到磁盘吗?

时间:2012-04-09 19:38:35

标签: perl

我正在使用类似“学校/学生[4]”的XPath。 setNodeText功能可以保存到硬盘吗?我的变化似乎只是在记忆中发生的。

2 个答案:

答案 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;

来源:http://www.perlmonks.org/?node_id=567212