0

我正在使用像“学校/学生 [4]”这样的 XPath。该setNodeText功能可以保存到硬盘吗?我的更改似乎只在内存中进行。

4

2 回答 2

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());
于 2012-04-10T04:22:37.230 回答
0

您可以使用未记录的方法转储 XML 结构getNodeAsXML。不保证输出是有效的 XML(例如没有标题),但它通常可以解决问题。

my $str = $xp->getNodeAsXML();
print $str;

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

于 2013-07-31T07:57:33.870 回答