ホームページ  >  記事  >  バックエンド開発  >  Python は XML 内の特定のノードのコンテンツを解析します

Python は XML 内の特定のノードのコンテンツを解析します

WBOY
WBOYオリジナル
2023-08-07 11:05:181448ブラウズ

Python は XML の特定のノード コンテンツを解析します

XML は、データの保存と送信によく使用される形式です。タグと属性の形式でデータ構造を記述し、自己記述的なファイルです。 Python では、さまざまなライブラリとメソッドを使用して XML ファイルを解析し、そのファイル内の特定のノード コンテンツを抽出できます。

この記事では、Python を使用して XML ファイルを解析し、特定のノードの内容を抽出する方法を紹介します。 XML 解析には Python の組み込み ElementTree ライブラリを使用します。 ElementTree はシンプルで直感的な API を提供し、XML の解析を非常に簡単にします。

まず、ElementTree ライブラリをインストールする必要があります。これは、次のコマンドを使用してインストールできます。

pip install elementtree

インストールが完了したら、XML の解析を開始できます。ファイル。次の XML ファイル (example.xml という名前) があるとします。

<?xml version="1.0" encoding="UTF-8"?>
<students>
  <student>
    <name>张三</name>
    <age>18</age>
    <gender>男</gender>
  </student>
  <student>
    <name>李四</name>
    <age>20</age>
    <gender>女</gender>
  </student>
</students>

私たちの目標は、各学生ノードの名前、年齢、性別を抽出することです。

まず、ElementTree ライブラリをインポートし、parse() 関数を使用して XML ファイルをロードする必要があります。

import xml.etree.ElementTree as ET

tree = ET.parse('example.xml')
root = tree.getroot()

## を呼び出すことで、 #parse( ) 関数を使用し、XML ファイルのパスを渡して、XML ファイルを tree オブジェクトにロードしました。次に、getroot() メソッドを使用して、XML ファイルのルート ノードを取得します。

次に、

findall() 関数を使用して、ノード名に基づいて特定のノードを検索します。 findall() 関数では、Xpath 式を渡して、検索するノードを指定する必要があります。この例では、すべての学生ノードを検索する必要があります。次のコードを使用できます。

students = root.findall('student')

findall()この関数は、Xpath 式を満たすすべてのノードを含むリストを返します。この例では、students リストに 2 つの学生ノードが含まれています。

次に、

students リストを反復処理して、各学生ノードの名前、年齢、性別を抽出します。各スチューデント ノードについて、find() メソッドを呼び出してノード名を渡すことで、対応するノードを見つけることができます。ノードのテキスト コンテンツは、text プロパティを使用して取得できます。

for student in students:
    name = student.find('name').text
    age = student.find('age').text
    gender = student.find('gender').text

    print(f'姓名:{name}')
    print(f'年龄:{age}')
    print(f'性别:{gender}
')

上記のコードを使用すると、各学生ノードの名前、年齢、性別を出力できます。

完全なコードは次のとおりです:

import xml.etree.ElementTree as ET

tree = ET.parse('example.xml')
root = tree.getroot()

students = root.findall('student')

for student in students:
    name = student.find('name').text
    age = student.find('age').text
    gender = student.find('gender').text

    print(f'姓名:{name}')
    print(f'年龄:{age}')
    print(f'性别:{gender}
')

上記のコードを実行すると、次の出力が得られます:

姓名:张三
年龄:18
性别:男

姓名:李四
年龄:20
性别:女

上記の例を通して、XML を解析していることがわかります。 Python では、特定のノードのコンテンツを抽出するのは非常に簡単です。

ElementTree ライブラリを使用すると、XML ファイルを簡単にロードし、必要なノードのコンテンツを検索して抽出できます。これは、XML ファイル内のデータを処理する場合、特に大量の XML データを読み取って分析する場合に非常に役立ちます。

要約すると、この記事では、Python を使用して XML ファイルを解析し、特定のノードのコンテンツを抽出する方法を紹介します。例のデモンストレーションを通じて、

ElementTree ライブラリを使用して XML ファイルを処理する方法と、findall() および find()## の使用方法を明確に理解できます。 # 必要なノードのコンテンツを検索して抽出する関数。この記事が初心者に少しでも役立つことを願っています。より詳細な学習と使用については、Python の公式ドキュメントを参照してください。

以上がPython は XML 内の特定のノードのコンテンツを解析しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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