#!/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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |