この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 13625|答える: 0

[出典] PythonはXMLファイルの解析を実装します

[リンクをコピー]
掲載地 2018/06/05 14:27:09 | | |
1. XML はじめに

XML(拡張可能なマークアップ言語)は、データの伝送と保存を目的とした拡張可能なマークアップ言語を指し、今日では多くの新技術の中核となっており、異なる分野で異なる応用が見られます。 これはウェブが一定段階まで発展する必然的な産物であり、SGMLの核心的特徴、HTMLのシンプルな特徴、そして明快でよく構成された多くの新機能を備えています。

テスト。 XMLファイル

<?XML version="1.0" encoding="utf-8"?>
<catalog>
    <maxid>4</maxid>
    <login username="pytest" passwd='123456'>
        <caption>パイソン</caption>
        <item id="4">
            <caption>テスト</caption>
        </item>
    </login>
    <item id="2">
        <caption>ゾープ</caption>
    </item>
</catalog>

XMLの詳細な紹介については、以下をご覧ください:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML文書解析

PythonがXMLを解析する一般的な方法は3つあります。1つはxml.dom.*モジュールで、これはW3C DOM APIの実装であり、DOM APIを処理する場合に非常に適しています。 2つ目はxml.sax.*モジュールで、これはSAX APIの実装であり、利便性を犠牲にして速度とメモリ使用量を優先しています。また、SAXはイベントベースのAPIで、大量の文書を「空中」で処理し、完全にメモリにロードする必要がありません。 3つ目はxml.etree.ElementTreeモジュール(略してET)で、これはDOMよりもはるかに高速な軽量なPythonスタイルAPIを提供し、SAXと比べて使いやすいAPIも多数あります。ETのET.iterparseは「空中」処理方式も提供しており、ドキュメント全体をメモリにロードする必要がなく、平均的な性能もSAXと同等です。 しかし、APIは少し効率的で使いやすいです。

2.1 xml.dom.*

ドキュメントオブジェクトモデル(DOM)は、拡張可能なマークアップ言語を扱うためにW3C組織が推奨する標準的なプログラミングインターフェースです。 DOMパーサーがXMLドキュメントを解析すると、ドキュメント全体を一度に読み取り、ドキュメント内のすべての要素をツリー構造としてメモリに保存します。その後、DOMが提供するさまざまな関数を使って、ドキュメントの内容や構造を読み取ったり、修正された内容をxmlファイルに書き込んだりできます。 Pythonでxml.dom.minidomを使ってxmlファイルを解析してください。

a. サブタグを取得する
b. 同じタグ名を区別するラベル
c. タグ属性値を取得する
d. ラベルペア間のデータ取得

アウトプット:

2.2 xml.etree.ElementTree

ElementTreeはXMLを処理するために生まれ、Python標準ライブラリには2つの実装があります。1つは純粋なPython実装で、例えばxml.etree.ElementTree、もう1つはより高速なxml.etree.cElementTreeです。 注意:実装にはC言語を使うことをおすすめします。C言語の方が速く、メモリ消費も少なくて済むからです。

a. ルートノードの次の層をトラバースします
b. 個別タグ、属性、テキストへの添字アクセス
c. ルートの下で指定されたタグを見つける
d. XMLファイルのトラバース
e. XMLファイルを修正する

アウトプット:

添付:

2.3 xml.sax.*

SAXはイベント駆動型APIで、SAXを用いてXMLをパーサーとイベントハンドラの2つの部分に分けて解析します。

パーサはXMLドキュメントを読み込み、要素開始や終了イベントなどのイベントをイベントハンドラーに送信する役割を担います

イベントプロセッサはイベントに応答し、渡されたXMLデータの処理を担当します

よくあるシナリオ:

(1) 大きな文書の処理

(2) 文書の一部のみ、または特定の情報がファイルからのみ取得される場合

(3) 自分でオブジェクトモデルを作りたい





先の:解決策:Visual Studioのインストールに使われたインストーラーが不完全です
次に:VS Codeコードの簡単なフォーマットショートカット
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com