XML :: LibXMLで値を更新すると、最初の2行が削除されます。 更新された値を除いて、XMLをそのまま保存したい。XML :: LibXMLは、XMLへの書き込み時に見出しを削除します。
....
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>test.name</name>
<value>help</value>
<description>xml issue</description>
</property>
、コードは次のとおりです:
私の元のXMLがある
my $parser =XML::LibXML->new();
my $tree =$parser->parse_file($file) or die $!;
my $root =$tree->getDocumentElement;
my $searchPath="/configuration/property[name=\"$name\"]/value/text()";
my ($val)=$root->findnodes($searchPath);
$val->setData($new_val);
open (UPDXML, "> $file") or die "ERROR: Failed to write into $file...";
print UPDXML $root->toString(1);
close (UPDXML);
私は、印刷UPDXML $ root-> toStringC14N(1)を試みたが、役に立たない...
10x。 cpanはtoStringと同じだが大容量のファイルを扱うときは良いと述べているので、試してみませんでした。 –