8.7.1 DOM オブジェクト

Python の DOM API 定義は xml.dom モジュールドキュメント の一部として与えられています。この節では、xml.dom の API と xml.dom.minidom との違いについて列挙します。

unlink( )
DOM との内部的な参照を破壊して、循環参照ガベージコレクションを 持たないバージョンの Python でもガベージコレクションされるように します。循環参照ガベージコレクションが利用できても、このメソッドを 使えば、大量のメモリをすぐに使えるようにできるため、必要なくなったら すぐにこのメソッドを DOM オブジェクトに対して呼ぶのが良い習慣です。 このメソッドは Document オブジェクトに対してだけ呼び出せば よいのですが、あるノードの子ノードを放棄するために子ノードに対して 呼び出してもかまいません。

writexml( writer[,indent=""[,addindent=""[,newl=""]]])
XML を writer オブジェクトに書き込みます。 writer は、ファイルオブジェクトインタフェースの write() に該当する メソッドを持たなければなりません。 indent パラメタには現在のノードのインデントを指定します。 addindent パラメタには現在のノードの下にサブノードを 追加する際のインデント増分を指定します。 newl には、改行時に行末を終端する文字列を指定します。

バージョン 2.1 で 変更 された仕様: 美しい出力をサポートするため、新たなキーワード引数 indentaddindent、および newl が追加されました

バージョン 2.3 で 変更 された仕様: Document ノードに対して、追加のキーワード引数 encoding を使って、XML ヘッダの encoding フィールドを指定できるように なりました

toxml( [encoding])
DOM が表現している XML を文字列にして返します。

引数がなければ、 XML ヘッダは encoding を指定せず、 文書内の全ての文字をデフォルトエンコード方式で表示できない場合、 結果は Unicode 文字列となります。この文字列を UTF-8 以外の エンコード方式でエンコードするのは不正であり、なぜなら UTF-8 が XML のデフォルトエンコード方式だからです。

明示的な encoding 引数があると、結果は指定されたエンコード 方式によるバイト文字列となります。引数を常に指定するよう推奨します。 表現不可能なテキストデータの場合に UnicodeError が送出されるのを 避けるため、encoding 引数は "utf-8" に指定するべきです。

バージョン 2.3 で 変更 された仕様: encoding が追加されました

toprettyxml( [indent[, newl]])
美しく出力されたバージョンの文書を返します。indent は インデントを行うための文字で、デフォルトはタブです; newl には行末で出力される文字列を指定し、デフォルトは \n です。

バージョン 2.1 で 新たに追加 された仕様です。 バージョン 2.3 で 変更 された仕様: encoding 引数の追加; toxml を参照

以下の標準 DOM メソッドは、xml.dom.minidom では特別な 注意をする必要があります:

cloneNode( deep)
このメソッドは Python 2.0 にパッケージされているバージョンの xml.dom.minidom にはありましたが、これには深刻な 障害があります。以降のリリースでは修正されています。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。