# `xml.sax.saxutils` — Utilidades SAX

Código fuente: Lib/xml/sax/saxutils.py

El módulo `xml.sax.saxutils` contiene una serie de clases y funciones que son comúnmente útiles al crear aplicaciones SAX, ya sea como uso directo o como clases base.

xml.sax.saxutils.escape(data, entities={})

  Escapar `'&'`, `'<'` y `'>'` en una cadena de datos.

  Puede escapar otras cadenas de datos pasando un diccionario como el parámetro opcional entities. Las claves y los valores deben ser cadenas; cada clave será reemplazada por su valor correspondiente. Los caracteres `'&'`, `'<'` y `'>'` siempre se escapan, incluso si se proporciona entities.

xml.sax.saxutils.unescape(data, entities={})

  Quitar el escape `'&amp;'`, `'&lt;'`, y `'&gt;'` en una cadena de datos.

  Puede quitar el escape de otras cadenas de datos pasando un diccionario como el parámetro opcional entities. Las claves y los valores deben ser cadenas; cada clave será reemplazada por su valor correspondiente. A `'&amp'`, `'&lt;'` y `'&gt;'` se les quita siempre el escape, incluso si se proporcionan entidades.

xml.sax.saxutils.quoteattr(data, entities={})

  Similar a `escape()`, pero también prepara data para usarse como un valor de atributo. El valor devuelto es una versión entrecomillada de data con los reemplazos adicionales necesarios. `quoteattr()` seleccionará un carácter de comillas basado en el contenido de data, intentando evitar codificar los caracteres de comillas en la cadena. Si los caracteres de comillas simples y dobles ya están en data, los caracteres de comillas dobles se codificarán y data se envolverá entre comillas dobles. La cadena resultante se puede utilizar directamente como un valor de atributo:

      >>> print("<element attr=%s>" % quoteattr("ab ' cd \" ef"))
      <element attr="ab ' cd &quot; ef">

  Esta función es útil al generar valores de atributo para HTML o cualquier SGML utilizando la sintaxis concreta de referencia.

class xml.sax.saxutils.XMLGenerator(out=None, encoding='iso-8859-1', short_empty_elements=False)

  Esta clase implementa la interfaz `ContentHandler` escribiendo eventos SAX en un documento XML. En otras palabras, el uso de un `XMLGenerator` como controlador de contenido reproducirá el documento original que se está analizando. out debe ser un objeto similar a un archivo que por defecto sea sys.stdout. encoding es la codificación de la secuencia de salida que tiene como valor predeterminado `'iso-8859-1'`. short_empty_elements controla el formato de los elementos que no contienen contenido: si `False` (valor predeterminado) se emiten como un par de etiquetas de inicio/fin, si se establece en `True` se emiten como una sola etiqueta autocerrada.

  Distinto en la versión 3.2: Added the short_empty_elements parameter.

class xml.sax.saxutils.XMLFilterBase(base)

  Esta clase está diseñada para situarse entre un `XMLReader` y los manejadores de eventos de la aplicación cliente. Por defecto, no hace más que pasar las peticiones al lector y los eventos a los manejadores sin modificar, pero las subclases pueden sobrescribir métodos específicos para modificar el flujo de eventos o las peticiones de configuración a medida que pasan.

xml.sax.saxutils.prepare_input_source(source, base='')

  This function takes an input source and an optional base URL and returns a fully resolved `InputSource` object ready for reading. The input source can be given as a string, a file-like object, or an `InputSource` object; parsers will use this function to implement the polymorphic source argument to their `parse()` method.