A data structure for well-formed XML documents, designed for Common Lisp.
About
cxml-stp is an alternative to the W3C's DOM, which cxml also implements. It was written by David Lichteblau as an add-on library for Closure XML and is available under an X11-style license.
Please send bug reports to cxml-devel@common-lisp.net (list information).
Acknowledgements: cxml-stp is inspired by XOM.
Download
Download a tarball.
Installation
cxml-stp needs Closure XML, Alexandria, and Plexippus XPath.
ASDF is used for compilation. Register the .asd file, e.g. by symlinking it, then compile cxml-stp using asdf:operate.
$ ln -sf `pwd`/cxml-stp.asd /path/to/your/registry/ * (asdf:operate 'asdf:load-op :cxml-stp)
Implementation-specific notes: At this point, cxml-stp is written to work with Lisp strings (as opposed to runes and rods), and is meant to be used on Lisp implementations with Unicode support.
Documentation
⬗ Tutorial
⬗ Code snippets from the tutorial collected on one page
There is also a rough "STP for DOM users" comparison which should be useful if you have a specific DOM function in mind and are looking for STP's equivalent.
Recent changes
2008-11-30
- XPath support. (Thanks to Ivan Shvedunov for his contributions.)
- Use 21 bit characters on Lisps offering them.
- New function NUMBER-OF-CHILDREN.
- Fixed FILTER-CHILDREN to return a list, not a vector.
- Shortcut syntax using symbol in WITH-ATTRIBUTE (thanks to Cyrus Harmon).
- Minor changes: Disabled uri syntax warnings. Represent uris as strings, not puri objects.
2007-10-21
- New function FIND-RECURSIVELY-IF.
- Minor changes: Update to current CXML's SAX builders.
2007-08-05
- Initial public release.