0

"school/student[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 に答える