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 | |
by haukex (Archbishop) on Nov 09, 2021 at 14:49 UTC | |
by szpt9m (Novice) on Nov 09, 2021 at 16:13 UTC | |
by hippo (Archbishop) on Nov 09, 2021 at 15:29 UTC |