Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

(ar0n) Re: (YA) Perl XML parser

by ar0n (Priest)
on May 07, 2002 at 03:52 UTC ( #164517=note: print w/ replies, xml ) Need Help??


in reply to (YA) Perl XML-like parser

Speedy (lax?) little *generic* XML parser. It takes a funky approach and matches against substrs instead of gathering in the match, this made it over 20x faster in my test case. You can pick your own root node in the document as well..

There are no generic XML parsers. Just as a document either is XML or it isn't; something either parses XML, or it doesn't. Your so-called 'XML parser' doesn't.

There are no compromises.

<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/css" href="style.css"?> <one> <two foo="bar &quot;" baz:quux='4'> <three:toto wawa=''/> </two> <![CDATA[ 1 && 2 && 3 Foo Bar <Baz></Foo><Bar /><Foo> ]> <!-- one two three --> </one>

PS. And yes, I was the one who downvoted your node.


Comment on (ar0n) Re: (YA) Perl XML parser
Download Code
Re: (ar0n) Re: (YA) Perl XML parser
by belg4mit (Prior) on May 07, 2002 at 03:53 UTC
    There are lax XML parsers, they're called non-validating. It is supposed to handle <foo /> (as the comments indicate), but I negelected to test that yet, and have posted prematurely. I am working on it now, thank you.

    UPDATE: This now works, it was meant to, but that's what I get for not testing all cases... As for generic I meant as opposed to podmaster's XML ticker parsers which also user substr but in a format dependent manner.

    --
    perl -pew "s/\b;([mnst])/'$1/g"

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2014-09-19 06:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (132 votes), past polls