in reply to Re^10: Compare 2 XML files
in thread Compare 2 XML files
required output
How can i do with multiple loop :$VAR1 = [ { 'eventid' => '957', 'name' => 'aaaa' }, { 'eventid' => '2667', 'name' => 'bbbb' }, { 'eventid' => '2667' 'name' => 'bbbb' }, { 'eventid' => '1503' 'name' => 'cccc' }, { 'eventid' => '1103' 'name' => 'dddd' }, { 'eventid' => '1503' 'name' => 'cccc' } ];
Thanks for helping .#!/usr/bin/env perl use strict; use warnings; use XML::XPath; use Data::Dumper; my $xml = 'ApplicationList.xml'; my $xp = XML::XPath->new(filename => $xml); my $appxpath = $xp->findnodes("//application_list/application/"); my %appid = (); foreach my $appnodeset ($appxpath->get_nodelist) { my $id = $xp->find('./@id',$appnodeset)->string_value; my $name = $xp->find('./@name',$appnodeset)->string_value; s/^\s+|\s+$//g for $id,$name; $appid{$id} = $name; } print Dumper \%appid; my $eventxml = 'events.xml'; my $evenxp = XML::XPath->new(filename => $eventxml); my $xpath = "//event/custom_attribute_list/custom_attribute[normalize- +space(name)='SLB_SSRID']/value"; my @eventrecords = (); foreach my $node ($evenxp->findnodes($xpath)) { my $ssrid = $node->string_value; $ssrid =~ s/^\s+|\s+$//g ; if ( exists $appid{$ssrid} ){ push @eventrecords, { eventid => $ssrid }; } } print Dumper \@eventrecords;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^12: Compare 2 XML files
by poj (Abbot) on Jul 11, 2017 at 08:06 UTC | |
by snehit.ar (Beadle) on Jul 11, 2017 at 09:52 UTC | |
|
Re^12: Compare 2 XML files
by snehit.ar (Beadle) on Jul 12, 2017 at 13:04 UTC | |
by hippo (Archbishop) on Jul 12, 2017 at 13:36 UTC | |
by snehit.ar (Beadle) on Jul 12, 2017 at 13:45 UTC | |
by snehit.ar (Beadle) on Jul 13, 2017 at 05:30 UTC | |
by poj (Abbot) on Jul 13, 2017 at 09:00 UTC | |
by snehit.ar (Beadle) on Jul 13, 2017 at 18:05 UTC |