Solved

Search and Compare between 2 Files and writing the results into another file.

Posted on 2008-10-02
1
277 Views
Last Modified: 2013-11-17
Hello,

I have 2 files. Both of these files have XML formats.

First File has Single Line XML Requests and second file has single line XML OutPuts.

Every Request Line has an ID associated to it and the corresponding response will have the same ID in it.

Now the problem is to separate those request lines from the Request File which has no corresponding success response in the Response File.

There fields in the XML which have ID And Status Information in the same line.  

<Id>123</ID> ...... <Status>Success</Status>

what this means is, For every Line in Request File, There will be a ID Filed, whose value will uniquely identify that request. This Id needs to be searched in the Response File, If I find that ID, in the same Line I should Find the <Status>Success</Status>.

If I do not find the Id at all in the Response File or After finding the Id, the <Status>Success</Status> is not found in the same line, then the Corresponding Line from the REQUEST FILE need to be copied into a FailedRequestsFile.

So I hope the description I gave explains that this is all about filtering the requests which failed to retuning a response at all or returned a Fail response. so that we can reprocess them.

thank you.
0
Comment
Question by:objectkk
1 Comment
 
LVL 39

Accepted Solution

by:
Adam314 earned 500 total points
ID: 22626364
It would help if you posted both XML files... but going on your description so far

open(my $in, "<response_file_here.txt") or die "Could not open response: $!\n";
my %Res;
while(<$in>) {
	next unless m|<id>(\d+).*<Status>(.*?)</Status>|;
	$Res{$1} = $2;
}
close($in);
 
 
open($in, "<request_file_here.txt") or die "Could not open requests: $!\n";
open(my $out, ">failed_requests.txt") or die "Could not open failed requests: $!\n";
while(<$in>) {
	next unless /<id>(\d+)/;
	print $out $_ unless($Res{$1} and $Res{$1} eq 'Success');
}
close($out);
close($in);

Open in new window

0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Attention: This article will no longer be maintained. If you have any questions, please feel free to mail me. jgh@FreeBSD.org Please see http://www.freebsd.org/doc/en_US.ISO8859-1/articles/freebsd-update-server/ for the updated article. It is avail…
A year or so back I was asked to have a play with MongoDB; within half an hour I had downloaded (http://www.mongodb.org/downloads),  installed and started the daemon, and had a console window open. After an hour or two of playing at the command …
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question