如何打印 XML 解析中的属性和标签?
How can I print the attributes and tags in XML parsing?
我正在通过 python 中的元素树解析 XML 文件。
我想打印我的 xml 文件中的每个标签和值。
->这是我的 XML 文件
<EIT_PARSER>
<EVENT>
<VERSION>13</VERSION>
<START_DATE>2018-03-14</START_DATE>
<START_TIME>07:05:00</START_TIME>
<DURATION>00:30:00</DURATION>
<SHORT-DESCRIPTION>
<DESCRIPTION>
<LANG>tur</LANG>
<NAME>Tuhaf İcatlar</NAME>
<CODING>ISO-8859-9</CODING>
</DESCRIPTION>
</SHORT-DESCRIPTION>
<ID>651</ID>
<FREE-CA-MODE>1</FREE-CA-MODE>
<RUNNING-STATUS>0</RUNNING-STATUS>
<EXTENDED-DESCRIPTION>
<DESCRIPTION>
<LANG>tur</LANG>
<TEXT>ŠSeloteyple, hazır kahvenin ortak noktası ne olabilir? Ya da Kleenex ve GPS Konumlama aygıtının? Şaşırmaya hazırlıklı olun! Bu dizi, en sıradan araçların neden ve nasıl keşfedildiğini ele alıyor.</TEXT>
<CODING>ISO-8859-9</CODING>
</DESCRIPTION>
</EXTENDED-DESCRIPTION>
<CLASSIFICATIONS>
<CONTENT>
<NIBBLE_LEVEL_1>9</NIBBLE_LEVEL_1>
<NIBBLE_LEVEL_2>0</NIBBLE_LEVEL_2>
<BROADCASTER_BYTE>4</BROADCASTER_BYTE>
</CONTENT>
</CLASSIFICATIONS>
<PARENTAL-RATING>
<RATING>
<COUNTRY_CODE>TUR</COUNTRY_CODE>
<AGE>0</AGE>
</RATING>
</PARENTAL-RATING>
</EVENT>
</EIT_PARSER>
我的代码:
import xml.etree.ElementTree as ET
tree = ET.parse('y.xml')
root = tree.getroot()
for event in root.findall('EVENT'):
desc = event.find('SHORT-DESCRIPTION')
if desc is None:
continue
desc_s = desc.text
children = event.get('DESCRIPTION')
.
.
.
.
我想检查标签然后获取它们的值。
如何打印所有标签和值?
您需要深入到树中才能访问更深层次的数据。
import xml.etree.ElementTree as ET
def get_data():
root = ET.parse('data.xml')
for event in root.findall('.//EVENT'):
version = event.find('VERSION').text
lang = event.find('SHORT-DESCRIPTION').find('.//LANG').text
name = event.find('SHORT-DESCRIPTION').find('.//NAME').text
lang2 = event.find('EXTENDED-DESCRIPTION').find('.//LANG').text
text = event.find('EXTENDED-DESCRIPTION').find('.//TEXT').text
输出:
13
tur
Tuhaf İcatlar
tur
Seloteyple, hazır kahvenin ortak noktası ne olabilir?.....
我正在通过 python 中的元素树解析 XML 文件。
我想打印我的 xml 文件中的每个标签和值。
->这是我的 XML 文件
<EIT_PARSER>
<EVENT>
<VERSION>13</VERSION>
<START_DATE>2018-03-14</START_DATE>
<START_TIME>07:05:00</START_TIME>
<DURATION>00:30:00</DURATION>
<SHORT-DESCRIPTION>
<DESCRIPTION>
<LANG>tur</LANG>
<NAME>Tuhaf İcatlar</NAME>
<CODING>ISO-8859-9</CODING>
</DESCRIPTION>
</SHORT-DESCRIPTION>
<ID>651</ID>
<FREE-CA-MODE>1</FREE-CA-MODE>
<RUNNING-STATUS>0</RUNNING-STATUS>
<EXTENDED-DESCRIPTION>
<DESCRIPTION>
<LANG>tur</LANG>
<TEXT>ŠSeloteyple, hazır kahvenin ortak noktası ne olabilir? Ya da Kleenex ve GPS Konumlama aygıtının? Şaşırmaya hazırlıklı olun! Bu dizi, en sıradan araçların neden ve nasıl keşfedildiğini ele alıyor.</TEXT>
<CODING>ISO-8859-9</CODING>
</DESCRIPTION>
</EXTENDED-DESCRIPTION>
<CLASSIFICATIONS>
<CONTENT>
<NIBBLE_LEVEL_1>9</NIBBLE_LEVEL_1>
<NIBBLE_LEVEL_2>0</NIBBLE_LEVEL_2>
<BROADCASTER_BYTE>4</BROADCASTER_BYTE>
</CONTENT>
</CLASSIFICATIONS>
<PARENTAL-RATING>
<RATING>
<COUNTRY_CODE>TUR</COUNTRY_CODE>
<AGE>0</AGE>
</RATING>
</PARENTAL-RATING>
</EVENT>
</EIT_PARSER>
我的代码:
import xml.etree.ElementTree as ET
tree = ET.parse('y.xml')
root = tree.getroot()
for event in root.findall('EVENT'):
desc = event.find('SHORT-DESCRIPTION')
if desc is None:
continue
desc_s = desc.text
children = event.get('DESCRIPTION')
.
.
.
.
我想检查标签然后获取它们的值。
如何打印所有标签和值?
您需要深入到树中才能访问更深层次的数据。
import xml.etree.ElementTree as ET
def get_data():
root = ET.parse('data.xml')
for event in root.findall('.//EVENT'):
version = event.find('VERSION').text
lang = event.find('SHORT-DESCRIPTION').find('.//LANG').text
name = event.find('SHORT-DESCRIPTION').find('.//NAME').text
lang2 = event.find('EXTENDED-DESCRIPTION').find('.//LANG').text
text = event.find('EXTENDED-DESCRIPTION').find('.//TEXT').text
输出:
13
tur
Tuhaf İcatlar
tur
Seloteyple, hazır kahvenin ortak noktası ne olabilir?.....