Showing us a sample of the code you have tried, or at least telling us what modules you are using, would help a great deal in providing a good answer.
A light weight way to perform your trick if you are not fussy about the order of the elements in the result is:
use strict; use XML::Simple; my $org = <<'XML'; <FILER url='http://somewhere'> <PROJECT name='test_project'/> <USER email='some@email.com'/> </FILER> XML # parse the input string my $root = XMLin ($org, KeepRoot => 1, ); # Insert the element $root->{FILER}{LOCATION}{name} = '1stFloor'; # Dump the result print XMLout ($root, RootName => undef);
which prints:
<FILER url="http://somewhere"> <LOCATION name="1stFloor" /> <PROJECT name="test_project" /> <USER email="some@email.com" /> </FILER>
If you need to retain the original element order then you need something like XML::TreeBuilder:
use strict; use XML::TreeBuilder; my $org = <<'XML'; <FILER url='http://somewhere'><PROJECT name='test_project'/><USER emai +l='some@email.com'/></FILER> XML # parse the input string my $root = XML::TreeBuilder->new (); $root->parse ($org); # Insert the element my $ins = XML::Element->new ('LOCATION', name => '1stFloor'); $root->push_content ($ins); # Dump the result print $root->as_XML ();
which prints:
<FILER url="http://somewhere"><PROJECT name="test_project"></PROJECT>< +USER email="some@email.com"></USER><LOCATION name="1stFloor"></LOCATI +ON></FILER>
or XML::Twig:
use strict; use XML::Twig; my $org = <<'XML'; <FILER url='http://somewhere'><PROJECT name='test_project'/><USER emai +l='some@email.com'/></FILER> XML # parse the input string my $root = XML::Twig->new (); $root->parse ($org); # Insert a new element my $ins = XML::Twig::Elt->new ('LOCATION', {name => '1stFloor'}); $ins->paste ('last_child', $root->root ()); # Dump the result $root->print ();
which prints:
<FILER url="http://somewhere"><PROJECT name="test_project"/><USER emai +l="some@email.com"/><LOCATION name="1stFloor"/></FILER>
In reply to Re: XML handling
by GrandFather
in thread XML handling
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |