Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

(ar0n) Re: (YA) Perl XML parser

by ar0n (Priest)
on May 07, 2002 at 03:52 UTC ( [id://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.

Replies are listed 'Best First'.
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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://164517]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (8)
As of 2024-04-19 08:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found