Sun751 has asked for the wisdom of the Perl Monks concerning the following question:

Using XPath or XParser could any one suggest me how i can append new attribute to XML from hash, Below i am listed the structure of XML source file and the code that i have done to check the existing attributes, Structure of my XML file is like this:-
<CONFIGURATION <APPLICATION_SERVER> <RESOURCE_LIST> <PLATFORM_INDEPENDENT> <RESOURCE Id="res.wacgen" Source="INTERNAL">$(res.appl)</R +ESOURCE> <RESOURCE Id="res.wacgenlib" Source="INTERNAL">$(res.appl)$(res.sl +ash)all.4gm</RESOURCE> <RESOURCE Id="res.waclibext" Source="INTERNAL">4gs</RESOURCE> <RESOURCE Id="res.fcode" Source="INTERNAL">rt.2.10.01-1138</RESOUR +CE> <RESOURCE Id="res.frunext" Source="INTERNAL">ifx</RESOURCE> <RESOURCE Id="res.db_type" Source="INTERNAL">msv</RESOURCE> </PLATFORM_INDEPENDENT> </RESOURCE_LIST> </APPLICATION_SERVER> </CONFIGURATION>
And i am trying to check each attribute like this, my $source = '/sand/devel/sthapa/tmp/as.xcf-dist';
my $Tag_Resource ='/CONFIGURATION/APPLICATION_SERVER/RESOURCE_LIST/'; my $Tag_Resource_PI=$Tag_Resource.'PLATFORM_INDEPENDENT/RESOURCE'; my $Tag_wnt=$Tag_Resource.'WNT/RESOURCE'; my $os_res_group; my $parser=new XML::XPath->new(filename => $source); $parser or die "Unable to parse sourse file: $source\n"; my $Set_Resource = $parser->find($Tag_Resource_PI); foreach my $resource ($Set_Resource->get_nodelist) { my $attribute=$resource->getAttribute('Id'); my $child_node = $resource->getChildNodes(); if (exists $$HRR_resource{$attribute}) { print "Attribute exists: $attribute"; } else { #Add attribute to XML }

Replies are listed 'Best First'.
Re: append attribut using XPath or XParser
by Corion (Patriarch) on Jun 22, 2009 at 08:07 UTC
      Actually I am looking forward for solution using XPath or XParser which i missed to emphasize in previous post, Looking for help!!!!