xml.sax.saxutils — SAX Utilities

Source code:Lib/xml/sax/saxutils.py


The modulexml.sax.saxutils contains a number of classes and functionsthat are commonly useful when creating SAX applications, either in direct use,or as base classes.

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

Escape'&','<', and'>' in a string of data.

You can escape other strings of data by passing a dictionary as the optionalentities parameter. The keys and values must all be strings; each key will bereplaced with its corresponding value. The characters'&','<' and'>' are always escaped, even ifentities is provided.

Note

This function should only be used to escape characters thatcan’t be used directly in XML. Do not use this function as a generalstring translation function.

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

Unescape'&amp;','&lt;', and'&gt;' in a string of data.

You can unescape other strings of data by passing a dictionary as the optionalentities parameter. The keys and values must all be strings; each key will bereplaced with its corresponding value.'&amp','&lt;', and'&gt;'are always unescaped, even ifentities is provided.

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

Similar toescape(), but also preparesdata to be used as anattribute value. The return value is a quoted version ofdata with anyadditional required replacements.quoteattr() will select a quotecharacter based on the content ofdata, attempting to avoid encoding anyquote characters in the string. If both single- and double-quote charactersare already indata, the double-quote characters will be encoded anddatawill be wrapped in double-quotes. The resulting string can be used directlyas an attribute value:

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

This function is useful when generating attribute values for HTML or any SGMLusing the reference concrete syntax.

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

This class implements theContentHandler interfaceby writing SAXevents back into an XML document. In other words, using anXMLGeneratoras the content handler will reproduce the original document being parsed.outshould be a file-like object which will default tosys.stdout.encoding isthe encoding of the output stream which defaults to'iso-8859-1'.short_empty_elements controls the formatting of elements that contain nocontent: ifFalse (the default) they are emitted as a pair of start/endtags, if set toTrue they are emitted as a single self-closed tag.

Changed in version 3.2:Added theshort_empty_elements parameter.

classxml.sax.saxutils.XMLFilterBase(base)

This class is designed to sit between anXMLReader and the clientapplication’s event handlers. By default, it does nothing but pass requests upto the reader and events on to the handlers unmodified, but subclasses canoverride specific methods to modify the event stream or the configurationrequests as they pass through.

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

This function takes an input source and an optional base URL and returns afully resolvedInputSource object ready forreading. The input source can be given as a string, a file-like object, oranInputSource object; parsers will use thisfunction to implement the polymorphicsource argument to theirparse() method.