以下は、私が使用する XML です。
<a>
<id>ABC</id>
<class />
<gender />
</a>
タグ「id」を検索し、値「ABC」を「DEF」に置き換える Perl コードを書きたいと思います。
ただし、上記の XML のネストは変更される可能性があります。そのため、正確な位置とは無関係にタグ「id」を検索する一般化されたコードを作成したいと考えています。
今まで、ABC の値を置き換えることができるロジックを取得できましたが、これにより、コードがタグ「id」の位置を静的にします。
#!usr/bin/perl
use warnings;
use XML::Simple;
use Spreadsheet::ParseExcel;
use Data::Dumper;
my $FileName = 'sample.xls';
my $xml_file = 'hello.xml';
$par=$ARGV[0];
my $xml = XMLin($xml_file,
KeepRoot=>1,
ForceArray=>1,);
$xml->{a}->[0]->{id}='DEF';
XMLout(
$xml,
KeepRoot =>1 ,
NoAttr =>1,
OutputFile => $xml_file,
);
}