xml.sax.saxutils — SAX утилиты


Модуль 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().