19.13. xml.sax.saxutils --- SAX ユーティリティ

バージョン 2.0 で追加.

モジュール 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 が与えられるかどうかに関わらず、常に元の文字に戻します。

バージョン 2.3 で追加.

xml.sax.saxutils.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 xml.sax.saxutils.XMLGenerator([out[, encoding]])

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

class xml.sax.saxutils.XMLFilterBase(base)

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

xml.sax.saxutils.prepare_input_source(source[, base])

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