http://www.perlmonks.org?node_id=857350


in reply to adding XML records using XML::Twig

#!/usr/bin/perl -w use strict; my $sitefile='/app/sites.xml'; my $twig=new XML::Twig; $twig -> parsefile($sitefile); my %hash = (name=>"name3",address=>"address3",contact=>"contact3"); my $root=$twig->root; my $insert = $root->insert_new_elt('last_child', site => {siteid=>"THR +EE"}); foreach my $element (keys %hash){ $insert->insert_new_elt('last_child',$element,$hash{$element}) } $root->print;

Regards,
Murugesan Kandasamy
use perl for(;;);

Replies are listed 'Best First'.
Re^2: adding XML records using XML::Twig
by Anonymous Monk on Jul 23, 2013 at 21:22 UTC
    How to insert short-form like: <description mydescription /> ? Thanks.
      If you pass text as the third argument to insert_new_elt() it will be bracketed by the given element tags. However, if you pass a hash reference, you can instead change the elements attributes. So:
      $insert->insert_new_elt('last_child','description', 'mydescription' ); # creates: <description>mydescription</description> $insert->insert_new_elt('last_child','description', { desc => 'mydescr +iption' } ); # creates: <description desc="mydescription" />
        How to get to <sites> <site info="123"> <description> <descrip descrip1="abc" descrip2="def"/> </description> </site> </sites> Thanks