xmlを取得してタグの中身を解析するには? – python

import xml.etree.ElementTree as ET

 

xmlを解析したいと思います。やりたいことは、XMLファイルの中身を全部取得した後に、一番上から、指定したタグの中身を取得し出力します。タグの中のメタタグ、テキスト、などを取得できます。コードは下記のような感じ

 

sample.sml

<?xml version='1.0' encoding='utf-8'?>

<tmx version="1.4">
      <body>
            <tu>
                  <tuv xml:lang="en">
                    <seg>Welcome to Wikipedia</seg>
                  </tuv>

                  <tuv xml:lang="ca">
                    <seg>Benvinguts a la Viquipèdia</seg>
                  </tuv>
            </tu>

            <tu>
                <tuv xml:lang="en">
                  <seg>The Free Encyclopedia</seg>
                </tuv>

                <tuv xml:lang="ca">
                  <seg>L'Enciclopèdia Lliure</seg>
                </tuv>
            </tu>
      </body>
</tmx>

tree.py

# -*- coding: utf-8 -*-

import xml.etree.ElementTree as ET

tree = ET.parse('/Users/path/Desktop/sample.xml')
root = tree.getroot()
# print (root.tag) 
# print (root.attrib)

# es = root.findall('.//tu')
# for e in es:
#     print (e.tag, e.attrib)

tuv = root.findall('.//seg')
for e in tuv:
    print (e.text)

seg = root.findall('.//tuv')
for e in seg:
    print (e.attrib)

output

$ python /Users/path/Desktop/tree.py 
Welcome to Wikipedia
Benvinguts a la Viquipèdia
The Free Encyclopedia
L'Enciclopèdia Lliure
{'{https://www.w3.org/XML/1998/namespace}lang': 'en'}
{'{https://www.w3.org/XML/1998/namespace}lang': 'ca'}
{'{https://www.w3.org/XML/1998/namespace}lang': 'en'}
{'{https://www.w3.org/XML/1998/namespace}lang': 'ca'}
藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事