perlを使用してxmlの属性を更新したいと思います。ここでの問題は、XMLの属性を更新しているのにXML形式が変更されているときです。私の頭は使用しない!xmlの属性をxml形式に影響を与えずに更新するperlコード
<outer1>
<inner1>
<name>Stonecold</name>
<org>wwf</org>
<profession>
<Bowler>hai</Bowler>
</profession>
</inner1>
<inner1>
<name first = "Shanebond" />
<org>newzealand</org>
<profession>Shane Bond</profession>
</inner1>
<inner1>
<name>brain schemidit</name>
<org>Google</org>
<profession>Chairman</profession>
</inner1>
</outer1>
:
誰PLS
#!/usr/bin/perl
use strict;
use warnings;
use XML::Simple;
my $xml_file = '3.xml';
my $xml = XMLin(
$xml_file,
KeepRoot => 1,
ForceArray => 1
);
$xml->{outer1}->[0]->{inner1}->[1]->{name}->[0]->{first} = 'Shane Bond';
XMLout(
$xml,
KeepRoot => 1,
NoAttr => 1,
OutputFile => $xml_file,
);
入力XML以下のように私はPerlコードを使用するXMLフォーマット
に影響を与えるアウトして、XMLの属性を更新するために、私にいくつかのPerlコードをお勧めできます
期待される出力xml:
<outer1>
<inner1>
<name>Stonecold</name>
<org>wwf</org>
<profession>
<Bowler>hai</Bowler>
</profession>
</inner1>
<inner1>
<name first = "Shane Bond" />
<org>newzealand</org>
<profession>Shane Bond</profession>
</inner1>
<inner1>
<name>brain schemidit</name>
<org>Google</org>
<profession>Chairman</profession>
</inner1>
</outer1>
実際の出力のxml:代わりにXMLを使用しての
<outer1>
<inner1>
<name>Stonecold</name>
<org>wwf</org>
<profession>
<Bowler>hai</Bowler>
</profession>
</inner1>
<inner1>
<name>
<first>Shane Bond</first>
</name>
<org>newzealand</org>
<profession>Shane Bond</profession>
</inner1>
<inner1>
<name>brain schemidit</name>
<org>Google</org>
<profession>Chairman</profession>
</inner1>
</outer1>
[?* XML :: Simpleはは "落胆" されたのはなぜ*](http://stackoverflow.com/questions/33267765/why-is-xmlsimple-discouraged) – Borodin