A More Complex Example
In Chapter 3, we created an XML document that represents the Python classes in the PyXML package (index.py). The pyxml.xml file from Chapter 3 is a lengthy XML document, and makes a good test subject.
In this section, we convert the pyxml.xml file back to HTML, but this time
using XSLT instead of a SAX driver. After using XSLT to perform this,
the SAX and string approach from Chapter
2 will not seem nearly as powerful. However, this type of
conversion work is exactly what XSLT is designed to accomplish. The
basic structure of the pyxml.xml
document consists of a file element,
followed by one or more class
elements, followed by one or more method definition elements:
<file name="../xml/dom/ext/reader/HtmlLib.py">
<class name="class HtmlToDomParser(SGMLParser):">
<method name="def __init__(self):"/>
<method name="def unknown_starttag(self,tag,attrs):"/>
<method name="def unknown_endtag(self, tag):"/>
<method name="def handle_data(self, data):"/>
<method name="def handle_comment(self, comment):"/>
<method name="def handle_generic_node(self, node):"/>
<method name="def report_unbalanced(self, tag):"/>
<method name="def toDom(self, st, ownerDoc=None):"/>
</class>
</file>The above XML represents only a few lines of the 2600 line file.
The stylesheet used to convert this XML to HTML uses a combination of
apply-templates and value-of elements to traverse the structure
and generate appropriate output.
The stylesheet starts by creating the HTML opening and closing elements, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access