ホームページ  >  記事  >  バックエンド開発  >  Python による XML ファイルの解析例 (画像)

Python による XML ファイルの解析例 (画像)

PHPz
PHPzオリジナル
2017-04-23 16:44:513234ブラウズ

XML ファイルを解析するには、次のように xml.etree.ElementTree モジュールを使用します。 ElementTree モジュールは、この目的を達成するために 2 つのクラスを提供します:

  • ElementTree は XML ファイル全体 (ツリー構造) を表します

  • Element はツリー内の要素 (ノード) を表します

以下を操作しますXML ファイル: migapp.xml

Python による XML ファイルの解析例 (画像)

次のように ElementTree モジュールをインポートできます: import xml.etree.ElementTree as ET

または、解析パーサーのみをインポートできます: from xml.etree.ElementTree import parse

まず、XML ファイルを開く必要があります。ローカル ファイルの場合は、open 関数を使用します。インターネット ファイルの場合は、urlopen:

f = open( ' migapp.xml ' , ' rt ' , encoding= ' utf-) を使用します。 8 ' )

次に XML を解析します。

1

tree = ET.parse(f)
root = tree.getroot()
print('root.tag =', root.tag)
print('root.attrib =', root.attrib)

1.4

指定されたすべての要素を繰り返し解析します

Python による XML ファイルの解析例 (画像)

for child in root:      # 仅可以解析出root的儿子,不能解析出root的子孙
    print(child.tag)
    print(child.attrib) # attrib is a dict

1.5

いくつかの便利なメソッド

Python による XML ファイルの解析例 (画像)

print(root[1][1].tag)
print(root[1][1].text)

2 XMLファイルを変更する

属性サイズを追加する必要があるとします。各テキスト要素に ="50" を入力し、そのテキストを "Benxin Tuzi" に変更し、サブ要素 date="2016/01/16"Python による XML ファイルの解析例 (画像)

for element in root.iter('environment'):
    print(element.attrib)

migapp.xml の部分:

Python による XML ファイルの解析例 (画像)

Output.xml 対応する部分:

Python による XML ファイルの解析例 (画像)

3 注意事項

ファイル名として xml.py を使用しないでください。そうしないと、次のエラーが発生します:

ImportError: No module names 'xml.etree '; 'xml' はパッケージではありません

Python による XML ファイルの解析例 (画像)分析:

これは、インポート時に、最初に現在のパス内で xml.py モジュールが存在することが判明し、xml.py が検索されるためです。私たちが自分で書いたものは、もちろんパッケージではありません注:

xml を削除すると、py はまだ正常に解釈できません。これは、xml.pyc も現在のパスに生成され、このファイルの優先順位が xml よりも高いためです。 py なので、インタプリタはまだ最初に xml.pyc でそれを検索するため、このファイルも削除する必要があり、問題は正常に解決されました。 Python による XML ファイルの解析例 (画像)

結論:

スクリプト内でモジュールやパッケージを使用しない場合でも、ファイル名をパッケージ名やモジュール名と同じにしないようにしてください。そうしないと、奇妙なエラーが発生する可能性があります。
  • ElementTree モジュールで提供される多くの解析関数は、XML ドキュメント全体を事前にメモリに読み込む必要があります。これは、大規模な XML 解析、特にネットワークまたはパイプラインから XML を読み取る場合、ノンブロッキング解析には適していません。はとても重要です。この時点で、ElementTree モジュールの XMLPullParse クラスを使用して処理できます。もちろん、代わりに ElementTree モジュールの iterparse() を選択することもできます。このメソッドでは、解析時に大きな XML をすべてメモリに読み込む必要はありません。

以上がPython による XML ファイルの解析例 (画像)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。