in reply to Re^3: How can I keep or discard certain blocks of an XML file based on first line of block?
in thread How can I keep or discard certain blocks of an XML file based on first line of block?

What do you have in <...other lines that must be copied...> ?, and what is the attribute name in <label_y="somevalue">, that is not valid XML.
To remove the duplicate blocks, add a handler for the label_y tags to cut the element and then print at the end using an end_tag_handler.
my $label_y; my $twig = XML::Twig->new( twig_roots => { 'label_a' => \&label_a , 'label_y' => \&label_y , }, , end_tag_handlers => { 'label_x' => \&label_x, }, twig_print_outside_roots => $OUT, # print rest ); sub label_y { my ($twig,$e) = @_; $label_y = $e->cut; } sub label_x { my ($twig,$e) = @_; my $y = $label_y->att('y'); $label_y->set_att( channel => $y); $label_y->print; }
poj
  • Comment on Re^4: How can I keep or discard certain blocks of an XML file based on first line of block?
  • Select or Download Code