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={})

Снятие символов '&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().

Вернуться на верх