Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: XML-Parse

From: rebol:gavinmckenzie:fastmail:fm at: 8-Aug-2003 7:55

On Tue, 5 Aug 2003 10:42:31 +0200, "bryan" <[bry--itnisk--com]> said:
> [...] > > I've thought about doing the same, mainly cause I want to have xpath in > Rebol, and to do that I need a decent xml parser. I'm sure you're better > qualified than me for doing it but if you need any help on the project > I'd be glad to help. >
That's basically what the xml-object.r script does. The xml-object.r script turns the XML into a REBOL object hierarchy; the goal was to allow you to use REBOL's path syntax into XML. It worked well enough for my needs. It, as far as I recall, does coalesce multiple repeating XML elements into an array and such. See: http://web.archive.org/web/20020210063622/www3.sympatico.ca/gavin.mckenzie/rebol/xml-object-info.html Look for the heading "Multiply Occurring Elements". Mixed content is handled too. I use XPath in my day-job on a regular basis. XPath is the ultimate generalized way to address into XML content. It is also overkill for data-oriented XML content which is simpler in its intent than the set of all possible flavours of XML. Data-oriented XML is like the data-content from a bill/statement/purchase-order/etc. as opposed to a XHTML web-page. When interpreting (as opposed to writing) data-oriented XML you rarely care about whether something is actually expressed as an element or attribute, and so REBOL's path syntax is more usable in that context than XPath. Anyway, for me, the real power of XPath over what xml-object gives you with REBOL paths is the ability to write queries and do tests in XML where you can say "fetch all the "foo" elements that have a "bar" attribute with a value between 1 and 100". xml-object doesn't give you that capability, but it turns out that that degree of power is something that I didn't need when I built xml-object. In contrast, the xml-parse script is SAX oriented. It is meant to be a lower-level *parser* interface upon which one could build a DOM-creation script such as xml-object or some other more W3C compliant DOM script. They're meant to be complimentary. Gavin.