Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Folks:
I have:
<Requests> <Request ToDir="FTP54"> <TypeA> <fileNumber ID="54" /> </TypeA> </Request> <Request ToDir="FTP78"> <TypeA> <fileNumber ID="78" /> </TypeA> </Request> <Request ToDir="FTP79"> <TypeA> <fileNumber ID="79" /> </TypeA> </Request> </Requests>
elementdelete.pl filename FTP54 should generate:
<Requests> <Request ToDir="FTP78"> <TypeA> <fileNumber ID="78" /> </TypeA> </Request> <Request ToDir="FTP79"> <TypeA> <fileNumber ID="79" /> </TypeA> </Request> </Requests>
I'm thinking to use XML::Twig, but have not been able to find any examples to delete node from xml file. Thanks.

Replies are listed 'Best First'.
Re: Delete element node from xml file using XML::Twig?
by toolic (Bishop) on Jul 09, 2009 at 17:30 UTC
    Here's an example:
    use strict; use warnings; use XML::Twig; my $xmlStr = <<XML; <Requests> <Request ToDir="FTP54"> <TypeA> <fileNumber ID="54" /> </TypeA> </Request> <Request ToDir="FTP78"> <TypeA> <fileNumber ID="78" /> </TypeA> </Request> <Request ToDir="FTP79"> <TypeA> <fileNumber ID="79" /> </TypeA> </Request> </Requests> XML my $twig= new XML::Twig( twig_handlers => { Request => \&request } ); $twig->parse($xmlStr); $twig->print(); exit; sub request { my ($twig, $req) = @_; my $name = $req->att('ToDir'); $req->delete() if $name eq 'FTP54'; }
      Thanks toolic.
      How about addnode.pl FTP36 ?