http://www.perlmonks.org?node_id=410401


in reply to Re: Clarification on greediness
in thread Clarification on greediness

Hi prasadbabu

I have to agree with zejames that regexes are not the recommended way to parse XML. Especially when XML::Simple is so easy to use (just like it says on the tin). In case you are not familiar with it, here is some sample code, to produce the output you are looking for.

#!/usr/bin/perl use strict; use warnings FATAL => "all"; use XML::Simple; my $xml = '<pages> <contentmodel> <level>5</level> <first>35</first> <content>some text</content> </contentmodel> <contentmodel> <level>4</level> <first>45</first> <content>some text</content> </contentmodel> <contentmodel> <level>3</level> <first>25</first> <content>maps</content> </contentmodel> <contentmodel> <level>2</level> <first>15</first> <content>some text</content> </contentmodel> </pages> '; my $ref = XMLin($xml); for my $cm(@{$ref->{'contentmodel'}}){ printf "<first>%d</first>\n", $cm->{'first'} if $cm->{'content'} eq 'maps' }; __END__ output <first>25</first>

cheers

thinker