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'}