This HOWTO can't be a complete introduction to the Document Object Model, because there are lots of interfaces and lots of methods. Luckily, the DOM Recommendation is quite a readable document, so I'd recommend that you read it to get a complete picture of the available interfaces; this will only be a partial overview.
The Document Object Model represents a XML document as a tree of nodes, represented by an instance of some subclass of the Node class. Some subclasses of Node are Element, Text, and Comment.
We'll use a single example document throughout this section. Here's the sample:
<?xml version="1.0" encoding="iso-8859-1"?> <xbel> <?processing instruction?> <desc>No description</desc> <folder> <title>XML bookmarks</title> <bookmark href="http://www.python.org/sigs/xml-sig/" > <title>SIG for XML Processing in Python</title> </bookmark> </folder> </xbel>
Converted to a DOM tree, this document could produce the following tree:
Element xbel None Text #text ' \012 ' ProcessingInstruction processing 'instruction' Text #text '\012 ' Element desc None Text #text 'No description' Text #text '\012 ' Element folder None Text #text '\012 ' Element title None Text #text 'XML bookmarks' Text #text '\012 ' Element bookmark None Text #text '\012 ' Element title None Text #text 'SIG for XML Processing in Python' Text #text '\012 ' Text #text '\012 ' Text #text '\012'
This isn't the only possible tree, because different parsers may differ in how they generate Text nodes; any of the Text nodes in the above tree might be split into multiple nodes.)