This chapter describes a number of modules that are used to
parse different file formats. Python comes with extensive
support for the Extensible Markup Language XML and Hypertext
Markup Language (HTML) file formats. Python also provides basic
support for Standard Generalized Markup Language (SGML). All
these formats share the same basic structure (this isn’t so
strange, since both HTML and XML are derived from SGML). Each
document contains a mix of start tags, end tags, plain text
(also called character data), and entity references. <document
name="sample.xml"> <header>This is a header</header> <body>This
is the body text. The text can contain plain text ("character
data"), tags, and entities. </body> </document> In the above
example, <document>, <header>, and <body> are start tags. For
each start tag, there’s a corresponding end tag which looks
similar, but has a slash before the tag name. The start tag can
also contain one or more attributes, like the name attribute in
this example. Everything between a sta