xml.sax.saxutils
— Утилиты для SAX¶
Исходный код: Lib/xml/sax/saxutils.py
Модуль 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 с любыми дополнительными требуемыми заменами.quoteattr()
выберет символ кавычки на основе содержимого data, пытаясь избежать кодирования любых символов кавычек в строке. Если в data уже есть символы, заключенные в одинарные и двойные кавычки, символы, заключенные в двойные кавычки, будут закодированы, а data будет заключено в двойные кавычки. Полученную строку можно использовать непосредственно в качестве значения атрибута:>>> print("<element attr=%s>" % quoteattr("ab ' cd \" ef")) <element attr="ab ' cd " ef">
Эта функция полезна при генерации значений атрибутов для HTML или любого другого языка SGML с использованием синтаксиса reference concrete.
- 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()
.