gpt4 book ai didi

python - 在Python中解析带有多个标签的XML

转载 作者:行者123 更新时间:2023-12-01 03:39:30 24 4
gpt4 key购买 nike

我正在尝试解析 XML 文件。
我成功地解析了上层的标签,但现在我在标签内有一个标签,但没有得到正确的输出。

XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Stations>
<Station>
<Code>HT</Code>
<Type>knooppuntIntercitystation</Type>
<Namen>
<Kort>Den Bosch</Kort>
<Middel>'s-Hertogenbosch</Middel>
<Lang>'s-Hertogenbosch</Lang>
</Namen>
<Land>NL</Land>
<Synoniemen>
<Synoniem>Hertogenbosch ('s)</Synoniem>
<Synoniem>Den Bosch</Synoniem>
</Synoniemen>
</Station>
<Station>
<Code>ALMO</Code>
<Type>stoptreinstation</Type>
<Namen>
<Kort>Oostvaard</Kort>
<Middel>Oostvaarders</Middel>
<Lang>Almere Oostvaarders</Lang>
</Namen>
<Land>NL</Land>
<Synoniemen>
</Synoniemen>
</Station>
<Station>
<Code>ATN</Code>
<Type>stoptreinstation</Type>
<Namen>
<Kort>Aalten</Kort>
<Middel>Aalten</Middel>
<Lang>Aalten</Lang>
</Namen>
<Land>NL</Land>
<Synoniemen>
</Synoniemen>
</Station>
<Station>
<Code>ASA</Code>
<Type>intercitystation</Type>
<Namen>
<Kort>Amstel</Kort>
<Middel>Amsterdam Amstel</Middel>
<Lang>Amsterdam Amstel</Lang>
</Namen>
<Land>NL</Land>
<Synoniemen>
</Synoniemen>
</Station>
</Stations>

我的Python函数:

import xml.etree.ElementTree

e = xml.etree.ElementTree.parse('info.xml').getroot()

for stationsnamens in e.findall('Station'):
try:
syn = stationsnamens.find('Synoniemen/Synoniem').text
print(syn)
except:
print(Exception)

我正在尝试打印每个 Synoniemen 字段,但前提是它存在。此外,还需要打印“代码”。

输出格式:

{Code}: {Synoniemen}

最佳答案

类似这样的东西(注意:我在本例中使用了.fromstring(),但您可以修改它以供您自己使用文件)

import xml.etree.ElementTree
xmlstring = "<root><synoniemen><synoniem>A</synoniem><synoniem>B</synoniem></synoniemen></root>"
e = xml.etree.ElementTree.fromstring(xmlstring)
syn = e.find('synoniemen')
for synoniem in syn:
print(synoniem.text)

要点是 syn 是一个带有 for 的可迭代对象,因为它包含多个元素。

所以你的代码看起来像这样:

for stationsnamens in e.findall('Station'):
code = stationsnames.find('Code')
try:
syn = stationsnamens.find('Synoniemen')
for synoniem in syn:
print(code.text, synoniem.text)
except:
print(Exception)

关于python - 在Python中解析带有多个标签的XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39870942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com