下面是我将使用的 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,
);
}