スポンサーリンクスポンサーリンク無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。XML処理XMLは移植性の高いオープンソース言語であり、プログラマーは、オペレーティングシステムや開発言語にかかわらず、他のアプリケーションが読むことができるアプリケーションを開発することができます。Language(XML)は、HTMLやSGMLによく似たマークアップ言語です。Consortiumで推奨されており、オープンスタンダードとして利用できます。XMLは、SQLベースのバックボーンを必要とせずに、小規模から中規模のデータを追跡するのに非常に役立ちます。XMLパーサのアーキテクチャとAPIPythonの標準ライブラリは、XMLで動作する最小限にもかかわらず有用なインタフェースを提供します。XMLデータに対する最も基本的で広く使われているAPIの2つは、SAXとDOMのインタフェースです。XML(SAX)用のシンプルAPI:ここでは、関心のあるイベントのコールバックを登録して、パーサーがドキュメントを処理するようにします。これは、ドキュメントが大容量である場合やメモリの制限がある場合、ファイルをディスクから読み取って解析し、ファイル全体がメモリに格納されない場合に便利です。Consortiumの推奨事項です。大規模なファイルを扱う場合、SAXはDOMほど高速に情報を処理できません。DOMの場合ですと小さなファイルが多数使用されている場合は、リソースを有効に使用できなくなります。SAXは読み取り専用ですが、DOMではXMLファイルを変更できます。これら2つの異なるAPIは文字通りお互いを補完するので、大規模なプロジェクトの両方で使用できますXMLコード例については、単純なXMLファイルmovies.xmlを入力として使用しましょう。APIを使用したXMLの解析SAXは、イベントドリブンXML解析の標準インタフェースです。SAXを使用してXMLを解析するには、通常、xml.sax.ContentHandlerをサブクラス化して独自のContentHandlerを作成する必要があります。コールバック・インターフェースです。このインターフェースで発生するイベントの順序はドキュメント内の情報の順序を反映していますメソッドstartDocumentとendDocumentは、XMLファイルの先頭と末尾に呼び出されます。メソッド文字(テキスト)は、パラメータテキストを介してXMLファイルの文字データに渡されます。ContentHandlerは各要素の先頭と最後で呼び出されます。パーザが名前空間モードでない場合、メソッドstartElement(tag、attributes)とendElement(tag)が呼び出されます。それ以外の場合は、対応するstartElementNSメソッドとendElementNSメソッドが呼び出されます。ここで、tagは要素タグであり、attributesはAttributesオブジェクトです。次のメソッドは、新しいパーサオブジェクトを作成し、それを返します。作成されたパーサーオブジェクトは、システムが最初に見つけたパーサータイプになります。)パラメータの詳細は次のとおりです。メソッドは、SAXパーサを作成し、それを使ってドキュメントを解析します。–xmlfile:これは読み込むXMLファイルの名前です。contenthandler:これはContentHandlerオブジェクトでなければなりません。ErrorHandlerオブジェクトでなければなりません。parseString方法SAXパーサを作成し、指定されたXML文字列を解析するもう1つの方法があります。–xmlstring:読み込むXML文字列の名前です。contenthandler:これはContentHandlerオブジェクトでなければなりません。ErrorHandlerオブジェクトでなければなりません。APIを参照してください。Consortium)のクロスランゲージAPIです。DOMは、ランダムアクセスアプリケーションに非常に便利です。SAXでは、ドキュメントの1ビットを一度に見ることができます。1つのSAX要素を調べている場合、別のSAX要素にアクセスすることはできません。ここで、XML文書を素早くロードし、xml.domモジュールを使用してミニドームオブジェクトを作成する最も簡単な方法があります。minidomオブジェクトは、XMLファイルからDOMツリーを素早く作成する簡単なパーサメソッドを提供します。[、parser])関数を呼び出し、fileで指定されたXMLファイルをDOMツリーオブジェクトに解析します。ルーティングの設定をしてみよう。PINGを飛ばしてみよう。ルーティングの設定をしてみよう。PINGを飛ばしてみよう。