19.12. xml.sax.saxutils – Утилиты SAX¶xml.sax.saxutils – SAX Utilities
Модуль xml.sax.saxutils содержит ряд классов и функций, которые часто бывают полезны при создании SAX-приложений – как при непосредственном использовании, так и в качестве базовых классов.
- xml.sax.saxutils.escape(data, entities={})¶
Экранирует '&', '<' и '>' в строке данных.
Можно экранировать другие строки данных, передав словарь в качестве необязательного параметра entities. Ключи и значения должны быть строками; каждый ключ будет заменён соответствующим значением. Символы '&', '<' и '>' всегда экранируются, даже если указан entities.
- xml.sax.saxutils.unescape(data, entities={})¶
Раскодирует '&', '<' и '>' в строке данных.
Можно раскодировать другие строки данных, передав словарь в качестве необязательного параметра entities. Ключи и значения должны быть строками; каждый ключ будет заменён соответствующим значением. '&', '<' и '>' всегда раскодируются, даже если передан 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 " 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().