http://qs321.pair.com?node_id=164517


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"