Mumia W. schrieb: > On 01/12/2007 11:29 AM, Beginner wrote: [snip]
>> >> Yes ...and no. I guess I want to print out the 'code' for any address >> so that I can get the data corrected but I guess I would also like to >> remove those records at the /dataroot/address level so they don't >> appear in the file. >> > [more code using XML::LibXML snipped] > > XML::Simple isn't so bad :-) > XML::Twig neither ;-> #!/usr/bin/perl use warnings; use strict; use XML::Twig; my $xml; $xml .= $_ while <DATA>; my $twig = XML::Twig->new( twig_handlers => { 'address' => sub { my $elt = $_; for ($elt->descendants('line')) { if ($_->text =~ /\bNOT\b/) { print "Invalid address number: " . $elt->{att}->{number} . ", code: " . $elt->first_child('code')->text . "\n"; $elt->cut; } } } }, pretty_print => 'indented', )->parse($xml); $twig->print; __DATA__ <dataroot> <address number="1016"> <code>B679OOO00</code> <record_type>client</record_type> <address_type>shipping</address_type> <Postcode></Postcode> <Country>GBR</Country> <lines> <line>DO NOT USE THIS CODE</line> </lines> </address> <address number="1014"> <code>P982LUS00</code> <record_type>client</record_type> <address_type>shipping</address_type> <Postcode>HR2 0AU</Postcode> <Country>GBR</Country> <lines> <line>UPPER HOUSE FARM</line> <line>BACTON</line> <line>ESSEX</line> <line>EX2 0AU</line> </lines> </address> <address number="1333"> <code>A234ULE00</code> <record_type>client</record_type> <address_type>shipping</address_type> <Postcode></Postcode> <Country>AND</Country> <lines> <line>QUEENS HOUSE</line> <line>1 BUCKINGHAM PALACE</line> <line>LONDON WC2H</line> <line>****NOT AT THIS ADDRESS ANY MORE.</line> <line>***************</line> </lines> </address> <address number="1018"> <code>A&MPUB00</code> <record_type>client</record_type> <address_type>shipping</address_type> <Postcode>PO19 8SQ</Postcode> <Country>GBR</Country> <lines> <line>THE ATRIUM</line> <line>SOUTHERN GATE</line> <line>CHICHESTER</line> <line>SUSSEX</line> <line>PO19 8SQ</line> </lines> </address> </dataroot> HTH, Andreas Puerzer -- perl -mAcme::JAPH -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/