here is one way, good for small data sets
#!/usr/bin/perl -- use strict; use warnings; use XML::Simple; use Data::Dumper; my $xml = q~<?xml version='1.0'?> <param> <product_name>ABC</product_name> <lcns> <lcns1> <ext>1000</ext> <lcns>text1</lcns> </lcns1> <lcns2> <ext>40</ext> <lcns>text2</lcns> </lcns2> <lcns3> <lcns>text3</lcns> </lcns3> </lcns> </param>~; print $xml,$/; print Dumper( XMLin($xml)); # my $VAR1 = XMLin($xml); my $VAR1 = { 'lcns' => { 'lcns3' => { 'lcns' => 'text3' }, 'lcns2' => { 'ext' => '40', 'lcns' => 'text2' }, 'lcns1' => { 'ext' => '1000', 'lcns' => 'text1' } }, 'product_name' => 'ABC' }; # insert lcns4 $VAR1->{lcns}{lcns4} = { qw~ ext 10 lcns text4 ~ }; # edit existing entry lcns2 $VAR1->{lcns}{lcns2}{ext} = 50; $VAR1->{lcns}{lcns2}{lcns} = "new text2"; ## edit existing entry lcns2 $VAR1->{lcns}{lcns2} = { qw~ ext 50 lcns new text 2~ }; print XMLout($VAR1, NoAttr=>1,RootName=>'param',XMLDecl => 1, keyattr +=> []); __END__ <?xml version='1.0'?> <param> <product_name>ABC</product_name> <lcns> <lcns1> <ext>1000</ext> <lcns>text1</lcns> </lcns1> <lcns2> <ext>40</ext> <lcns>text2</lcns> </lcns2> <lcns3> <lcns>text3</lcns> </lcns3> </lcns> </param> $VAR1 = { 'lcns' => { 'lcns3' => { 'lcns' => 'text3' }, 'lcns2' => { 'ext' => '40', 'lcns' => 'text2' }, 'lcns1' => { 'ext' => '1000', 'lcns' => 'text1' } }, 'product_name' => 'ABC' }; <?xml version='1.0' standalone='yes'?> <param> <lcns> <lcns1> <ext>1000</ext> <lcns>text1</lcns> </lcns1> <lcns2> <ext>50</ext> <lcns>new</lcns> <text>2</text> </lcns2> <lcns3> <lcns>text3</lcns> </lcns3> <lcns4> <ext>10</ext> <lcns>text4</lcns> </lcns4> </lcns> <product_name>ABC</product_name> </param>

In reply to Re: How to edit and insert new elements in XML by Anonymous Monk
in thread How to edit and insert new elements in XML by lazam786

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.