in reply to Re: Compare 2 XML files
in thread Compare 2 XML files

Also i am not able to retrieve the application id from the node ..

Replies are listed 'Best First'.
Re^3: Compare 2 XML files
by Corion (Patriarch) on Jul 10, 2017 at 10:42 UTC

    The first thing would be to actually extract your $ssrids from the XML and print them.

    Then, extract the system IDs from the other XML and print those.

    After you have convinced yourself that you can extract the correct values, apply the hint of how to find matching elements between two lists.

    Maybe you need to take a step back and consider whether/how you can actually extract the data you need.

      #!/usr/bin/env perl use strict; use warnings; use XML::XPath; use Data::Dumper; use List::Compare; my @records; my @eventrecords; my $eventxml = 'events.xml'; my $evenxp = XML::XPath->new(filename => $eventxml); my $evennodeset = $evenxp->findnodes('//event'); foreach my $evennode ($evennodeset->get_nodelist) { my $evenssrid = $evenxp->find("./custom_attribute_list/custom_ +attribute[normalize-space(name)='SLB_SSRID']/value", $evennode); s/^\s+|\s+$//g for $evenssrid; push @eventrecords, {eventid => $evenssrid}; } print Dumper \@eventrecords; my $xml = 'ApplicationList.xml'; my $xp = XML::XPath->new(filename => $xml); #my $nodeset = $xp->findnodes('//application_list'); for ($xp->findnodes('/application_list/application/@id') ) { my $appid = $_->string_value; $appid =~ s/^\s+|\s+$//g; push @records, {appid => $appid}; } print Dumper \@records; #if ( scalar List::Compare->new(\@records, \@eventrecords)->get_in +tersection ) { # print "The arrays are the same"; #print Dumper @eventrecords; #}

      C:\SLB\Dashboard\Perl>perl testperl $VAR1 = [ { 'eventid' => '957' }, { 'eventid' => '2667' }, ]; $VAR1 = [ { 'appid' => '957' }, { 'appid' => '975' } ];

      HOW TO GET ONLY ID PRESENT IN BOTH THE LIST AND NOT ALL THE RECORDS.

        Now is the moment when you refer to perlfaq4 to get the "intersection of two arrays", as I already told you.

        Maybe we are talking past each other here. This is not a code writing service. You are expected to write the code yourself. I will help you by pointing you to the resources you need to write your code for your work, but you will have to do the work yourself.