XIST is also a XML parser with a very simple and pythonesque tree API.
Every XML element type corresponds to a Python class and these Python classes provide a conversion method to transform the XML tree (e.g. into HTML). XIST can be considered 'object oriented XSLT'.
XIST was written as a replacement for the HTML preprocessor HSC, and borrows some features and ideas from it.
It borrows basic ideas (XML/HTML elements as Python objects) from the HTMLgen and HyperText applications.
Here are some key features of "XIST":
· ll.make is an object oriented make replacement. Like make it allows you to specify dependencies between files and actions to be executed when files don't exist or are out of date with respect to one of their sources. But unlike make you can do this in a object oriented way and targets are not only limited to files.
· ll.url provides classes for parsing and constructing RFC 2396 compliant URLs.
· ll.orasql provides utilities for working with cx_Oracle (It allows calling functions and procedures with keyword arguments, Query results will be put into Record objects, where database fields are accessible as object attributes, The Connection class provides methods for iterating through the database metadata, Importing the modules adds support for URLs with the scheme oracle to ll.url.)
· ll.ul4c is compiler for a templating language with similar capabilities to Django's templating language. UL4 templates are compiled to an internal bytecode format, which makes it possible to implement template renderers in other languages and makes the template code "secure" (i.e. template code can't open or delete files).
· ll.astyle can be used for colored terminal output (via ANSI escape sequences).
· ll.color provides classes and functions for handling RGB color values. This includes the ability to convert between different color models (RGB, HSV, HLS) as well as to and from CSS format, and several functions for modifying and mixing colors.
· ll.misc provides several small utility functions and classes.
· ll.sisyphus provides classes for running Python scripts as cron jobs.
· ll.daemon can be used on UNIX to fork a daemon process.
· ll.xml_codec contains a complete codec for encoding and decoding XML.
· ll.nightshade can be used to serve the output of PL/SQL functions/procedures with CherryPy.
· Python 2.5;
· Python Imaging Library;
· libxml2 and its Python wrapper (if you want to parse "broken" HTML);
· elinks (if you want want to use the function ll.xist.ns.html.astext);
· setuptools (if you want to install this package as an egg);
· py.test (if you want to run the test suite)
· C compiler supported by distutils, if you want to install the source distribution.
What's New in This Release: [ read full changelog ]
· ll.xist.parse.itertree now supports the same interface is the walk method.
· A new function xfind.filter has been added that filters the output of walk or itertree against a Selector object.
· The XIST parse events have been renamed: The "start*" events to "enter*" and the "end*" events to "leave*".