20.11. 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={})¶ エスケープされた文字列
'&'
,'<'
,'>'
を元の文字に戻します。オプションの entities パラメータに辞書を渡すことで、そのほかの文字をエスケープさせることも可能です。辞書のキーと値はすべて文字列で、キーに指定された文字は対応する値に置換されます。
'&'
,'<'
,'>'
は entities が与えられるかどうかに関わらず、常に元の文字に戻します。
-
xml.sax.saxutils.
quoteattr
(data, entities={})¶ escape()
に似ていますが、 data は属性値の作成に使われます。戻り値はクォート済みの data で、置換する文字の追加も可能です。quoteattr()
はクォートすべき文字を data の文脈から判断し、クォートすべき文字を残さないように文字列をエンコードします。 data の中にシングル・クォート、ダブル・クォートがあれば、両方ともエンコードし、全体をダブルクォートで囲みます。戻り値の文字列はそのままで属性値として利用できます:>>> print("<element attr=%s>" % quoteattr("ab ' cd \" ef")) <element attr="ab ' cd " ef">
この関数は参照具象構文を使って、 HTML や SGML の属性値を生成するのに便利です。
-
class
xml.sax.saxutils.
XMLGenerator
(out=None, encoding='iso-8859-1', short_empty_elements=False)¶ このクラスは SAX イベントを XML 文書に書き戻すことで
ContentHandler
インターフェースを実装しています。 つまり、XMLGenerator
をコンテントハンドラとして用いることで、パースしている元々の文書を複製することが出来ます。 out にはファイル様オブジェクトでなければなりません。 デフォルトは sys.stdout です。 encoding は出力ストリームのエンコーディングで、デフォルトは'iso-8859-1'
です。 short_empty_elements は 内容を持たない要素のフォーマットを制御します。False
(デフォルト) の場合、開始/終了タグのペアとなり、True
の場合、1つの空タグになります。バージョン 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()
に渡すことが可能になります。