in reply to Counting XML Blocks in XML file and Calculating Total Amount
The best advice is to use one of the many XML parsing modules.
That said, your approach does work for the sample data you have provided. I can't resist offering you your same approach with a couple of minor improvements in the hope that you'll find them helpful.
print "This will calculate the total amount and To no of transactions +\n"; my ($cnt, $totalamt); # precompiled regex my $PAYMENT_AMOUNT_PATTERN = qr{ <payment \s+ amount> # opening tag ( # begin capture \d+[.]?\d* # digits with optional decimal point ) # end capture </payment \s+ amount> # closing tag }msx; LINE: while (<DATA>) { # capture to lexical variable my ($payment_amount) = /$PAYMENT_AMOUNT_PATTERN/; next LINE if not defined $payment_amount; $cnt++; $totalamt += $payment_amount; print; } print "The total amount found is $totalamt \n"; print "Total Transactions are $cnt \n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Counting XML Blocks in XML file and Calculating Total Amount
by harishnuti (Beadle) on Sep 26, 2008 at 06:26 UTC |