Kod Perla dla Znajdź i zastąp wartość znacznika w XML

Poniżej znajduje się XML, którego będę używać:

<a>

<id>ABC</id>

<class />

<gender />

</a>

Chcę napisać kod Perla, który szuka tagu „id” i zastępuje wartość „ABC” za pomocą „DEF”.

Jednak zagnieżdżenie powyższego XML może się zmienić. Chcę więc utworzyć uogólniony kod, który szuka tagu „id” niezależnie od jego dokładnej pozycji.

Do tej pory jestem w stanie uzyskać logikę, w której mogę zastąpić wartość w ABC, ale to czyni mój kod statycznym pozycji tagu „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,
        );
    }

questionAnswers(3)

yourAnswerToTheQuestion