"xml.sax.saxutils" --- SAX Utilities
************************************

**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*.

   Nota:

     Esta función debería ser usada únicamente para escapar caracteres
     que no pueden ser usados directamente en XML. No use esta función
     como una función general de traducción de cadenas de caracteres.

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

   Esta función toma una fuente de entrada y, opcionalmente, una URL
   base y retorna un objeto "InputSource" completamente resuelto y
   listo para ser leído. La fuente de entrada puede ser proporcionada
   como una cadena de caracteres, un objeto tipo archivo , o un objeto
   "InputSource"; los analizadores usarán esta función para
   implementar el argumento polimórfico *source* a su método
   "parse()".
