xml-pull is meant to be used only if we're dealing with really huge XML files; if we're dealing with a small XML file, then the regular sxml library will probably be a better choice. If we're handling really huge XML files, xml-pull may be helpful.
To use this in PLT Scheme, it's probably easiest to grab it from PLaneT. Here's an example:
(module text-xml-pull mzscheme ;; This test script prints out all the story items in Lambda the Ultimate. (require (planet "xml-pull.ss" ("dyoo" "xml-pull.plt" 1 0)) (lib "pretty.ss") (lib "url.ss" "net")) (define rdf (get-pure-port (string->url "http://lambda-the-ultimate.org/rss.xml"))) (define my-taffy (start-xml-pull rdf)) ;; Print out all the RDF items till we exhaust the taffy. (let loop ([morsel (pull-morsel my-taffy)]) (cond [(exhausted? morsel) (void)] [(and (start-element? morsel) (equal? (start-element-name morsel) 'item)) (pretty-print (pull-sexp my-taffy)) (newline) (loop (pull-morsel my-taffy))] [else (loop (pull-morsel my-taffy))])))
(Thanks to Paste Scheme for making the example code above look pretty.)
Back to PLT.