我想从几十年中提取00,但所有的尝试都没有达到预期的效果
下面是我的XML文件的一部分,另存为gorillas_catalog.XML
<CATALOG>
<CD decade="00s">
<TITLE>Gorillaz</TITLE>
<ARTIST>Gorillaz</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>2001</YEAR>
</CD>
<CD decade="00s">
<TITLE>Demon Days</TITLE>
<ARTIST>Gorillaz</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Parlaphone</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
我的预期结果如下:
Title: Gorillaz, Album: Gorillaz, Decade: 00s
Title: Gorillaz, Album: Demon Days, Decade: 00s
通过XML文件的其余部分,依此类推
我测试了每个部件,得到如下代码:
import xml.etree.ElementTree as ET
tree = ET.parse("gorillaz_catalog.xml")
root = tree.getroot()
for ARTIST in root.iter("ARTIST"):
print("Artist:", ARTIST.text)
for TITLE in root.iter("TITLE"):
print("Title:", TITLE.text)
for decade in root.iter("CD"):
print("Decade:", decade.attrib)
十年来,我一直在接受Decade: {'decade': '00s'}
,而我只想00s
然后,我尝试循环所有内容以获得我想要的结果(在对上面的3个语句进行注释之后)
for ARTIST in root.iter("ARTIST"):
for TITLE in root.iter("TITLE"):
for decade in root.iter("CD"):
print("Artist:", ARTIST.text,", Title:", TITLE.text, ", Decade:", decade.attrib)
我得到的结果循环了20到20次:
Artist: Gorillaz , Album: Gorillaz , Decade: {'decade': 00s'}
二十次(这是文件中记录的数量),然后
Artist: Gorillaz , Album: Demon Days , Decade: {'decade': '80s'}
二十次
这给了我想要的线路,但我不需要每次20次
这是我在发布后查看更多文档后的最终代码。谢谢大家的建议
输出:
我觉得你把事情弄得有点太复杂了;使用另一个库和xpath进行尝试:
输出:
相关问题 更多 >
编程相关推荐