Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: XML::parser question

by Shendal (Hermit)
on Oct 22, 2002 at 22:18 UTC ( [id://207214]=note: print w/replies, xml ) Need Help??


in reply to XML::parser question

I find that XML::Simple is very well suited to this sort of task. The following may fit your needs:
#!/usr/bin/perl -w use strict; use XML::Simple; my $xml = << "EOF"; <?xml version="1.0" encoding="ISO-8859-1"?> <monk value="PM"> <say>JAPH</say> <vals> <val val1="F" val2="value f"> </val> <val val1="FO" val2="value fo"> </val> <val val1="FOO" val2="value foo"> </val> <val val1="FOOB" val2="value foob"> </val> <val val1="FOOBA" val2="value fooba"> </val> <val val1="FOOBAR" val2="value foobar"> </val> </vals> </monk> EOF my $xs = new XML::Simple; my $xmlhref = $xs->XMLin($xml); if ($xmlhref->{say}) { print $xmlhref->{say} . "\n" if (grep { $_->{val1} eq 'FOO' } @{$xm +lhref->{vals}->{val}}); }

Cheers,
Shendal

Replies are listed 'Best First'.
Re: Re: XML::parser question
by signal9 (Pilgrim) on Oct 23, 2002 at 14:42 UTC

    I agree, XML::Simple is a nice module for quickly parsing simple XML data.

    Of course a question that may need to be answered is, "Why use a parser over a regexp?" Although the regular expression may do the job for you now, it may break in the future should the format of the incoming document change. No doubt you could extend your own routine to the point of being a full-featured parser, but that has already been done for you in the form of several very good parsing modules ( of course, if you can improve the world by writing a new parser, don't hesitate to do so! )

    Though the overhead of running a full-fledged parser may be a little greater than an ad hoc solution, it might save you some maintenance headaches later.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://207214]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2024-04-20 04:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found