Документация Python неофициальный перевод

20.11. xml.sax.saxutils – Утилиты SAXxml.sax.saxutils – SAX Utilities

Модуль xml.sax.saxutils содержит ряд классов и функций, которые часто бывают полезны при создании SAX-приложений – как при непосредственном использовании, так и в качестве базовых классов.

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

Экранирует '&', '<' и '>' в строке данных.

Можно экранировать другие строки данных, передав словарь в качестве необязательного параметра entities. Ключи и значения должны быть строками; каждый ключ будет заменён соответствующим значением. Символы '&', '<' и '>' всегда экранируются, даже если указан entities.

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

Раскодирует '&amp;', '&lt;' и '&gt;' в строке данных.

Можно раскодировать другие строки данных, передав словарь в качестве необязательного параметра entities. Ключи и значения должны быть строками; каждый ключ будет заменён соответствующим значением. '&amp', '&lt;' и '&gt;' всегда раскодируются, даже если передан entities.

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

Аналогична escape(), но также подготавливает data для использования в качестве значения атрибута. Возвращаемое значение – это строка data, заключённая в кавычки, с дополнительными необходимыми заменами. quoteattr() выбирает символ кавычки на основе содержимого data, стараясь избежать кодирования кавычек в строке. Если в data уже присутствуют и одинарные, и двойные кавычки, то двойные кавычки будут закодированы, а data будет заключена в двойные кавычки. Полученную строку можно напрямую использовать в качестве значения атрибута:

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

Эта функция полезна при генерации значений атрибутов для HTML или любого SGML с использованием эталонного конкретного синтаксиса.

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

Этот класс реализует интерфейс ContentHandler, записывая события SAX обратно в XML-документ. Иными словами, использование XMLGenerator в качестве обработчика содержимого воспроизведёт исходный анализируемый документ. out должен быть файлоподобным объектом (по умолчанию sys.stdout). encoding – кодировка выходного потока (по умолчанию 'iso-8859-1'). short_empty_elements управляет форматированием элементов без содержимого: если False (по умолчанию), они выводятся как пара открывающего и закрывающего тегов; если True, то как один самозакрывающийся тег.

Новое в версии 3.2: параметр short_empty_elements.

class xml.sax.saxutils.XMLFilterBase(base)

Этот класс предназначен для размещения между XMLReader и обработчиками событий клиентского приложения. По умолчанию он ничего не делает, только передаёт запросы наверх читателю, а события – обработчикам без изменений, но подклассы могут переопределять определённые методы для изменения потока событий или запросов конфигурации при их прохождении.

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

Эта функция принимает источник входных данных и необязательный базовый URL и возвращает полностью разрешённый объект InputSource, готовый к чтению. Источник входных данных может быть задан как строка, файлоподобный объект или объект InputSource; синтаксические анализаторы используют эту функцию для реализации полиморфного аргумента source для своего метода parse().