#!/usr/bin/perl use strict; use warnings; use XML::Twig; changeTagAttrOrder(); sub changeTagAttrOrder { my $t = XML::Twig->new( output_filter=>'safe', twig_handlers => { 'ait:date-delivered' => \&changeTagAttrOrderHandler, }, pretty_print => 'indented', keep_atts_order => 1, ); $t->parse(\*DATA); $t->print; $t->purge; }#end of changeTagAttrOrder sub changeTagAttrOrderHandler { my( $t,$rootElt)= @_; my $curEltPath = $rootElt->path; my $att1Val = $rootElt->att('month'); my $att2Val = $rootElt->att('year'); my $att3Val = $rootElt->att('day'); $rootElt->del_atts; print "after delete\n Attributes are: ".join(',',$rootElt->att_names())."\n"; # $rootElt->set_atts( # { month => $att1Val, year => $att2Val, day => $att3Val}); $rootElt->set_att(day => $att3Val); $rootElt->set_att(month => $att1Val); $rootElt->set_att(year => $att2Val); print "after new set\n Attributes are: ".join(',',$rootElt->att_names())."\n"; }#end of changeTagAttrOrderHandler __DATA__