# `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.

  Nuevo en la versión 3.2: El parámetro short_empty_elements.

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='')

  Esta función toma una fuente de entrada y una URL base opcional y devuelve un objeto `InputSource` totalmente resuelto y listo para ser leído. La fuente de entrada puede ser dada como una cadena, un objeto tipo archivo, o un objeto `InputSource`; los analizadores usarán esta función para implementar el argumento polimórfico fuente a su método `parse()`.