# 19. Outils de traitement de balises structurées

Python intègre une variété de modules pour fonctionner avec différentes formes de données structurées et balisées, comme le SGML (Standard Generalized Markup Language), le HTML (Hypert Markup Language), et quelques interfaces pour travailler avec du XML (eXtensible Markup Language).

It is important to note that modules in the `xml` package require that there be at least one SAX-compliant XML parser available. Starting with Python 2.3, the Expat parser is included with Python, so the `xml.parsers.expat` module will always be available. You may still want to be aware of the PyXML add-on package; that package provides an extended set of XML libraries for Python.

La documentation des bindings des interfaces DOM et SAX se trouve dans `xml.dom` et `xml.sax`.

- 19.1. `HTMLParser` — Simple HTML and XHTML parser
  - 19.1.1. Example HTML Parser Application
  - 19.1.2. `HTMLParser` Methods
  - 19.1.3. Exemples
- 19.2. `sgmllib` — Simple SGML parser
- 19.3. `htmllib` — A parser for HTML documents
  - 19.3.1. HTMLParser Objects
- 19.4. `htmlentitydefs` — Definitions of HTML general entities
- 19.5. Modules de traitement XML
- 19.6. Vulnérabilités XML
  - 19.6.1. defused packages
- 19.7. `xml.etree.ElementTree` — The ElementTree XML API
  - 19.7.1. Tutoriel
    - 19.7.1.1. XML tree and elements
    - 19.7.1.2. Parsing XML
    - 19.7.1.3. Finding interesting elements
    - 19.7.1.4. Modifying an XML File
    - 19.7.1.5. Building XML documents
    - 19.7.1.6. Parsing XML with Namespaces
    - 19.7.1.7. Additional resources
  - 19.7.2. XPath support
    - 19.7.2.1. Exemple
    - 19.7.2.2. Supported XPath syntax
  - 19.7.3. Référence
    - 19.7.3.1. Fonctions
    - 19.7.3.2. Objets Elements
    - 19.7.3.3. ElementTree Objects
    - 19.7.3.4. QName Objects
    - 19.7.3.5. TreeBuilder Objects
    - 19.7.3.6. XMLParser Objects
- 19.8. `xml.dom` — L’API Document Object Model
  - 19.8.1. Contenu du module
  - 19.8.2. Objets dans le DOM
    - 19.8.2.1. Objets DOMImplementation
    - 19.8.2.2. Objets nœuds
    - 19.8.2.3. Objet NodeList
    - 19.8.2.4. Objets DocumnentType
    - 19.8.2.5. Objets Document
    - 19.8.2.6. Objets Elements
    - 19.8.2.7. Objets Attr
    - 19.8.2.8. Objets NameNodeMap
    - 19.8.2.9. Objets Comment
    - 19.8.2.10. Objets Text et CDATASection
    - 19.8.2.11. Objets ProcessingInstruction
    - 19.8.2.12. Exceptions
  - 19.8.3. Conformité
    - 19.8.3.1. Correspondance des types
    - 19.8.3.2. Méthodes d’accès
- 19.9. `xml.dom.minidom` — Minimal DOM implementation
  - 19.9.1. DOM Objects
  - 19.9.2. DOM Example
  - 19.9.3. minidom and the DOM standard
- 19.10. `xml.dom.pulldom` — Support for building partial DOM trees
  - 19.10.1. DOMEventStream Objects
- 19.11. `xml.sax` — Prise en charge des analyseurs SAX2
  - 19.11.1. Les objets SAXException
- 19.12. `xml.sax.handler` — Base classes for SAX handlers
  - 19.12.1. ContentHandler Objects
  - 19.12.2. DTDHandler Objects
  - 19.12.3. EntityResolver Objects
  - 19.12.4. ErrorHandler Objects
- 19.13. `xml.sax.saxutils` — Utilitaires SAX
- 19.14. `xml.sax.xmlreader` — Interface for XML parsers
  - 19.14.1. XMLReader Objects
  - 19.14.2. IncrementalParser Objects
  - 19.14.3. Locator Objects
  - 19.14.4. InputSource Objects
  - 19.14.5. The `Attributes` Interface
  - 19.14.6. The `AttributesNS` Interface
- 19.15. `xml.parsers.expat` — Fast XML parsing using Expat
  - 19.15.1. XMLParser Objects
  - 19.15.2. ExpatError Exceptions
  - 19.15.3. Exemple
  - 19.15.4. Content Model Descriptions
  - 19.15.5. Expat error constants