Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: xml to xml converter

by haukex (Bishop)
on Nov 09, 2021 at 14:39 UTC ( #11138622=note: print w/replies, xml ) Need Help??


in reply to xml to xml converter

Although my go-to XML module is XML::LibXML, XML::Twig is useful for filtering XML files. The following produces your expected output for the given input:

use warnings; use strict; use XML::Twig; use XML::XPath; # for findnodes my $filename = 'foo.xml'; XML::Twig->new( twig_print_outside_roots => 1, keep_spaces => 1, twig_roots => { '/TestCode/TestCategory/Test' => sub { my ($t, $elt) = @_; if ( $elt->{att}{name} =~ /^CheckType_/ ) { my @values = $elt->findnodes('./context/value'); # could theoretically also use XPath for the following if ( grep { $_->text =~ /XYZ/ } @values ) { $t->flush } else { $t->purge } } else { $t->purge } }, }, )->parsefile($filename);

Replies are listed 'Best First'.
Re^2: xml to xml converter
by szpt9m (Novice) on Nov 09, 2021 at 14:47 UTC
    Thank you for quick response but i get an error Can't locate XML/Twig.pm in @INC when running this. How can i install in module in Windows?
      Thank you for quick response but i get an error Can't locate XML/Twig.pm in @INC when running this. How can i install in module in Windows?

      The same way you would install any other module. In Strawberry Perl, cpanm XML::Twig XML::XPath works for me.

        This solution worked for me. Though for a bigger data, i could see lot of empty spaces in between but that is ok for me to start with. Thank you very much

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11138622]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2022-01-20 23:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:












    Results (57 votes). Check out past polls.

    Notices?