I am parsing xml in my external task. it works fine when I replace new value by old ones for my nodes but can somebody give me idea how to insert new node in it. In attached xml, if I try to update value of california from 871 to say 885, I can achieve through set_inner_xml functionality of XMLNode but how to add new node say Alabama with value 895.
Please post the actual code you're using to try and accomplish this.
open(DCR,$file) or die("$! - Cannot open DCR (r)...get help from the teamsite admin for $file");
local $/=undef;
my $xml = ;
close DCR;
my $rootnode = TeamSite:CRnode->new($xml);
my $text = “Teamsitepath/region.xml”;
my $regionRootnode = TeamSite::XMLnode->new($text);
my @arrRegion = $regionRootnode->get_node_list('region');
my $varIncrement = 0 ;
for(my $varInc=0;$varInc<$replicantSize;$varInc++)
{
$region= $rootnode->value("Contact_Us[$varInc].Region_Name");
foreach $regionNode(@arrRegion)
$regionFromXml = $arrRegion[$varIncrement]->get_attrib('name');
if($regionFromXml =~ $region)
$id = $regionNode->value();
$rootnode->set_inner_xml("Contact_Us[$varInc].Region_Unique_ID", "$id");
}
$varIncrement++ ;
$varIncrement = 0;
$id=0;
open(DCR, $file) or die("$! - Cannot open DCR (r)...get help from the teamsite admin for $file");local $/ = undef;my $xml = <DCR>;close DCR;
open(DCR, $file) or die("$! - Cannot open DCR (r)...get help from the teamsite admin for $file");my $xml = do { local $/; <DCR> };close DCR;
my $rootnode = TeamSite:CRnode->new($xml);my $text = "Teamsitepath/region.xml";my $regionRootnode = TeamSite::XMLnode->new($text);
new()
$replicantSize
=~
/.../
strict
warnings
eq
foreach
$id
$region
open(DCR, $file) or die("$! - Cannot open DCR (r)...get help from the teamsite admin for $file");local $/ = undef;my $xml = <DCR>;close DCR;my $rootnode = TeamSite:CRnode->new($xml);my $text = "Teamsitepath/region.xml";my $regionRootnode = TeamSite::XMLnode->new($text);my @arrRegion = $regionRootnode->get_node_list('region');my $varIncrement = 0;for (my $varInc = 0; $varInc < $replicantSize; $varInc++) { $region = $rootnode->value("Contact_Us[$varInc].Region_Name"); foreach $regionNode (@arrRegion) { $regionFromXml = $arrRegion[$varIncrement]->get_attrib('name'); if ($regionFromXml =~ $region) { $id = $regionNode->value(); $rootnode->set_inner_xml("Contact_Us[$varInc].Region_Unique_ID", "$id"); } $varIncrement++; } $varIncrement = 0; $id = 0;}