in reply to Parsing pseudo XML files

One idea (thought process):

Until you empty the string:

You should now have an array like (for the above) ( '<Reference1>', '<reference1_name>', 'jvdsj', ...)

Now repeat until the array is empty, with a fresh hash:

This assumes that leading whitespace in the data themselves are unneeded (though that can be worked around), and that < will not be unescaped in the data spaces.

Update I'm watching other responses to this node, but I'm wondering if a very lightweight XML parser module based on this idea might be worth it. I see that someone's pointed out XML::Sax, which appears to not require external libs, but to get an XML parser requires what appears to be 3 additional modules. The above pseudo code, on the other hand, could be made into a single module, say, XML::PureSimple, which would not handle bad XML gracefully, but could be used to handle anything that follows the basic XML patterns. If anyone thinks there might be such a use of a module, drop me a msg or similar.

-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important

Replies are listed 'Best First'.
Re: Re: Parsing pseudo XML files
by clintp (Curate) on Dec 18, 2001 at 00:14 UTC
    On a quest for a pure-perl replacement for XML::Parser I made this post to comp.lang.perl.misc which closely follows this strategy (follow the thread for a small bug fix). The OP might want to look at this for an example of how you might go about writing such a beast.

    There are better pure-perl alternatives, I know. This is just a short example of one that works.