Perl-Code zum Suchen und Ersetzen eines Tag-Werts in XML

Unten ist das XML, das ich verwenden werde:

<a>

<id>ABC</id>

<class />

<gender />

</a>

Ich möchte einen Perl-Code schreiben, der nach dem Tag 'id' sucht und den Wert "ABC" durch "DEF" ersetzt.

Die Verschachtelung des obigen XML kann sich jedoch ändern. Ich möchte also einen verallgemeinerten Code erstellen, der unabhängig von seiner exakten Position nach dem Tag 'id' sucht.

Bis jetzt bin ich in der Lage, die Logik zu erhalten, in der ich den Wert in ABC ersetzen kann, aber das macht meinen Code statisch von der Position des Tags "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,
        );
    }

Antworten auf die Frage(3)

Ihre Antwort auf die Frage