# `xml.sax.saxutils` — SAX Utilities

Вихідний код: Lib/xml/sax/saxutils.py

Модуль `xml.sax.saxutils` містить низку класів і функцій, які зазвичай корисні під час створення програм SAX, або для прямого використання, або як базові класи.

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

  Escape `'&''`, `' <'`, and `'> ''` у рядку даних.

  Ви можете уникнути інших рядків даних, передавши словник як необов’язковий параметр entities. Усі ключі та значення мають бути рядками; кожен ключ буде замінено відповідним значенням. Символи `'&'`, `' <'` and `'> ''` завжди екрануються, навіть якщо вказано 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. кодування — це кодування вихідного потоку, яке за умовчанням має значення `'iso-8859-1'`. short_empty_elements контролює форматування елементів, які не містять вмісту: якщо `False` (за замовчуванням), вони випромінюються як пара початкових/кінцевих тегів, якщо встановлено `True`, вони випромінюються як один сам - закритий тег.

  Змінено в версії 3.2: Added the short_empty_elements parameter.

class xml.sax.saxutils.XMLFilterBase(base)

  Цей клас призначений для розташування між `XMLReader` і обробниками подій клієнтської програми. За замовчуванням він не робить нічого, крім передачі запитів до читача та подій до обробників без змін, але підкласи можуть перевизначати певні методи для зміни потоку подій або запитів конфігурації під час їх проходження.

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

  This function takes an input source and an optional base URL and returns a fully resolved `InputSource` object ready for reading. The input source can be given as a string, a file-like object, or an `InputSource` object; parsers will use this function to implement the polymorphic source argument to their `parse()` method.