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 {'{http://www.w3.org/XML/1998/namespace}lang': 'en'} {'{http://www.w3.org/XML/1998/namespace}lang': 'ca'} {'{http://www.w3.org/XML/1998/namespace}lang': 'en'} {'{http://www.w3.org/XML/1998/namespace}lang': 'ca'}