# 13.11 `xml.sax.saxutils` -- SAX ユーティリティ

バージョン2.0 以降で新規追加された 仕様です。

モジュール `xml.sax.saxutils` には SAX アプリケーションの作成に 役立つ多くの関数やクラスも含まれており、直接利用したり、基底クラスとし て使うことができます。

`escape`( | data[, entities])

  文字列データ内の "`&`"、"`<`"、"`>`" をエス ケープします。

  オプションの entities パラメータに辞書を渡すことで、そのほ かの文字をエスケープさせることも可能です。辞書のキーと値はすべて文字列 で、キーに指定された文字は対応する値に置換されます。

`unescape`( | data[, entities])

  エスケープされた文字列 "`&amp;`"、"`&lt;`"、 "`&gt;`" を元の文字に戻します。

  オプションの entities パラメータに辞書を渡すことで、そのほ かの文字をエスケープさせることも可能です。辞書のキーと値はすべて文字列 で、キーに指定された文字は対応する値に置換されます。 バージョン2.3 以降で新規追加された 仕様です。

`quoteattr`( | data[, entities])

  `escape()` に似ていますが、data は属性値の作成に使わ れます。戻り値はクォート済みの data で、置換する文字の追加も可 能です。`quoteattr()` はクォートすべき文字を data の 文脈から判断し、クォートすべき文字を残さないように文字列をエンコード します。

  data の中にシングル・クォート、ダブル・クォートがあれば、両方 ともエンコードし、全体をダブルクォートで囲みます。戻り値の文字列はその ままで属性値として利用できます。:

      >>> print "<element attr=%s>" % quoteattr("ab ' cd \" ef")
      <element attr="ab ' cd &quot; ef">

  この関数は参照具象構文を使って、 HTML や SGML の属性値を生成するのに 便利です。 バージョン2.2 以降で新規追加された 仕様です。

class `XMLGenerator`( | [out[, encoding]])

  このクラスは `ContentHandler` インターフェースの実装で、SAX イ ベントを XML ドキュメントに書き戻します。つまり、 `XMLGenerator` をコンテント・ハンドラとして用いると、パースし たオリジナル・ドキュメントの複製が作れるのです。out に指定する のはファイル風のオブジェクトで、デフォルトは sys.stdout です。 encoding は出力ストリームのエンコーディングで、デフォルトは `'iso-8859-1'` です。

class `XMLFilterBase`( | base)

  このクラスは `XMLReader` とクライアント・アプリケーションのイ ベント・ハンドラとの間に位置するものとして設計されています。デフォル トでは何もせず、ただリクエストをリーダに、イベントをハンドラに、それ ぞれ加工せず渡すだけです。しかし、サブクラスでメソッドをオーバーライ ドすると、イベント・ストリームやリクエストを加工してから渡すように変 更可能です。

`prepare_input_source`( | source[, base])

  この関数は引き数に入力ソース、オプションとして URL を取り、読み取り 可能な解決済み `InputSource` オブジェクトを返します。入力ソー スは文字列、ファイル風オブジェクト、`InputSource` のいずれでも 良く、この関数を使うことで、パーサは様々な source パラメータを `parse()` に渡すことが可能になります。