首页 > 解决方案 > 我在 python 中没有成功从这个 XML 文件中打印电影标题

问题描述

我正在尝试让 python 打印 XML 文件中的所有电影名称,但我无法弄清楚。我对 Python 还很陌生,有人能把我引向正确的方向吗?我已经让它与其他 xml 一起使用,但不适用于这个 xml 文件。

我的代码:

import xml.etree.ElementTree as ET
tree = ET.parse('text.xml')
root = tree.getroot()

for elem in root:
    for movies in elem.find('decade'):
        print(movies.get('title'))

XML 文件:

<?xml version="1.0" encoding="iso-8859-1"?><filmsoptv datum="17-10-2018"><film><ft_link>https://www.filmtotaal.nl/film/5704</ft_link><titel>Gekij&amp;ocirc;-ban poketto monsut&amp;acirc; - My&amp;ucirc;ts&amp;ucirc; no gyakush&amp;ucirc;</titel><jaar>1998</jaar><regisseur>Kunihiko Yuyama:Michael Haigney</regisseur><cast>Veronica Taylor:Philip Bartlett:Rachael Lillis:Eric Stuart:Madeleine Blaustein:Ikue Ootani</cast><genre>Animatie:Actie:Avontuur:Familiefilm:Fantasy:Sci-Fi:Sport</genre><land>Japan</land><cover>https://www.filmtotaal.nl/images/covers/jf9qso31vo.jpg</cover><tagline>Witness the rarest pok&amp;Atilde;&amp;Acirc;&amp;copy;mon of all in their first movie!</tagline><duur>96</duur><synopsis>Ash, Pikachu en hun vrienden komen tegenover de machtige Mewtwo te staan.</synopsis><ft_rating>4.9</ft_rating><ft_votes>7</ft_votes><imdb_id>0190641</imdb_id><imdb_rating>6</imdb_rating><imdb_votes>32090</imdb_votes><starttijd>1539765780</starttijd><eindtijd>1539771120</eindtijd><zender>RTL7</zender><filmtip>1</filmtip></film><film><ft_link>https://www.filmtotaal.nl/film/18912</ft_link><titel>Foeksia de miniheks</titel><jaar>2010</jaar><regisseur>Johan Nijenhuis</regisseur><cast>Rachelle Verdel:Porgy Franssen:Annet Malherbe:Marcel Hensema:Lorenso van Sligtenhorst:Kara Borus</cast><genre>Familiefilm</genre><land>Nederland</land><cover>https://www.filmtotaal.nl/images/covers/l0doh3ptzc.jpg</cover><tagline></tagline><duur>95</duur><synopsis>Foeksia is een miniheksje.</synopsis><ft_rating>5.3</ft_rating><ft_votes>6</ft_votes><imdb_id>1382720</imdb_id><imdb_rating>5.6</imdb_rating><imdb_votes>194</imdb_votes><starttijd>1539770400</starttijd><eindtijd>1539775500</eindtijd><zender>NPO3</zender><filmtip>1</filmtip></film>

标签: pythonxmlprintfelementtree

解决方案


首先,您必须修复您的 xml,就像评论中提到的 andmart 一样。(标签fimsoptv需要关闭)

循环中的每个都elem指的是<film>您可以访问其中的一部电影(或标签),如下所示:

for elem in root:
    titel = elem.find('titel').text
    print(titel)

推荐阅读