#!/usr/bin/env python import string, cgi, os, whrandom, pickle, sys import cgitb; cgitb.enable() #sys.path.insert(0, '/home/mu.org/home/gus/fm/fmblog') #import fmbloglib,fmblog print 'Content-type: text/html\r\n' print ''' gus mueller
purchase    software    freeware    programmer\'s tools


GMXMLParser 1.1.1

GMXMLParser is a plug-in for REALbasic that will parse XML documents. It compiles for PPC, Carbon and Windows.

GMXMLParser can be purchased for $24.95 US dollars.
Purchase it securely online from eSellerate.net

You can also use GMXMLParser as a trial just by downloading the plug-in below. It however limits the number of parses you can make per run to 5.

You can download the current version from:
http://gusmueller.com/rb/gmxmlparser/current.sit

What\'s new in since 1.0?:

A memory leak was fixed. (Thanks to Andrew Bush for spotting it)
Parse() can now be called multiple times if you don\'t have the whole xml document at one time.
A new event- OutOfData() lets you know when the parser is done with the xml it has been handed
Events can be stopped from firing for a parse.
The StartElement now returns the tagStartOffset of the current element being parsed.
GMXMLParser Documentation:

Methods:

- Parse(xml as String, isFinal as Boolean)
This starts the parser, and from here on you get a bunch of events letting you know what\'s going on. The isFinal boolean lets the parser know to expect more data in the OutOfData event.

- SetYield(b as Boolean)
Turn on calls to REALYieldToRB(). This does not seem to make much of a difference, but it was a feature request. If you find that changing this value results in faster performance in certain conditions, please let me know!
This value defaults to false.

- StopEvents()
Stops the parser from sending any more events when it reaches a tag. This however does not stop the parsing of the document, so if it is not well formatted, an error may still be generated.

- Register(name as String, serialNumber as String)
Register the plug-in for use of more than 5 times.

Events:

- StartElement(name as String, attributeList as GMXMLAttributesList, tagStartOffset as Integer)
This event lets you know that a tag has been encountered, and it gives you a GMXMLAttributesList that you can query the attributes for. The tagStartOffset is the number of bytes that have been parsed up to this tag.

- EndElement(name as String)
This event lets you know that a tag has ended.

- ParseError(errorString as String, lineNumber as integer)
This event lets you know that an error has been encountered.

- CharacterData(data as String)
This event lets you know that character data has been encountered, and supplies you with the data.

- EndDocument()
This event lets you know that the parser is finished.

GMXMLAttributesList Documentation:

Methods:

- GetAttributeCount() as Integer
This event delivers the number of attributes this element contains.

- GetAttribute(index as Integer) as GMXMLAttribute
This event delivers a GMXMLAttribute object which you can query the name and value of the attribute.

- OutOfData() as String
This event means that the parser has finished with the xml you have supplied it, and will take more if you wish. Returning nothing will end the parsing, returning more xml will continue it.

GMXMLAttribute Documentation:

Methods:

- GetAttributeName() as String
This method returns the name of the attribute.

- GetAttributeValue() as String
This method returns the value of the attribute.



GMXMLParser uses software created by the Expat XML Parser project. Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper

GMXMLParser (c) 2002 August Mueller.
All things copyright © 2001, 2002 August Mueller

gmdc:
flying meat
contact
resume
photos
images
free font
cocoa bits
java bits
unix bits
osx bits
cvsdist
my words
mcommand
ja
links
my rss feed
book list
who\'s linken\'
login
wishlist
theories

people
andy
byron
jeff
jeremy
joe
kory
lynn
mary
murphy
ryan d

when bored
slashdot
maccentral
y! most viewed
cars
there gus
explodingdog
the onion
dotw
tonypierce
prior art
chimera

resources
Cafe au Lait
Cafe con Leche
design patterns
anitpatterns
java r.o.t.d
c.l.c
c.l.j
c.s.m.p.h
c.s.m.p.c



'''