と を使用XML::Simple
してXML::Dumper
います。前者のモジュールに関する問題は十分承知しています。別のライブラリを使用できる場合は、そうします。
私が達成したいのは、XML をロードし、それに行を追加することです。これは、スクリプトを実行する前の XML 構造です。
<person>
<appearance>
<param name="height" value="6,3"/>
</appearence>
</person>
スクリプト、または私がコーディングしようとしていたものは、この XML をファイルからロードし、<param>
要素を に追加する必要があります<appearence>
。私はこのコードを使用してそれを試みました:
use warnings;
use XML::Simple;
use XML::Dumper;
my $xml = XMLin('xml_import.xml');
$xml->{appearence} .= qq{<param name="age" value="22" />};
my $new_xml = XMLout($xml, noattr => 1, NoEscape => 1);
open(FILE, ">xml_import.xml");
print FILE $new_xml;
close FILE;
残念ながら、出力は次のとおりです。
<opt>
<appearence>HASH(0x1722190)<param name="age" value="22" /></appearence>
</opt>
<person>
元のタグを失うだけでなく<opt>
、その文字列は、既存の要素HASH
であると想定しているものを置き換えます。<param>
のドキュメントを読みましたXML::Simple
が、これを防ぐためにどの引数を使用する必要があるかわかりません。