Ссылка: http://xspf.org/ns/0/XSPF.rdf
def read_xspf_file(self,start,filename):
self.tree = ET.parse(filename)
self.playlist = self.tree.getroot()
self.trackList = self.playlist.find("trackList")
self.tracks = self.trackList.findall("track")
self.songs = []
for song_in_playlist in self.tracks:
self.song = {}
if song_in_playlist.find("location") is not None:
self.song.update({"path": song_in_playlist.find("location").text})
else:
self.song.update({"path": ""})
if song_in_playlist.find("creator") is not None:
self.song.update({"artist": song_in_playlist.find("creator").text})
else:
self.song.update({"artist": "Άγνωστος καλλιτέχνης"})
if song_in_playlist.find("album") is not None:
self.song.update({"album_title": song_in_playlist.find("album").text})
else:
self.song.update({"album_title": "Άγνωστο τίτλος άλμπουμ"})
if song_in_playlist.find("title") is not None:
self.song.update({"title": song_in_playlist.find("title").text})
else:
self.song.update({"title": "Άγνωστος τίτλος"})
if song_in_playlist.find("annotation") is not None:
self.song.update({"annotation": song_in_playlist.find("annotation").text})
else:
self.song.update({"annotation": ""})
if song_in_playlist.find("image") is not None:
self.song.update({"image": song_in_playlist.find("image").text})
else:
self.song.update({"image": ""})
if song_in_playlist.find("info") is not None:
self.song.update({"info": song_in_playlist.find("info").text})
else:
self.song.update({"info": ""})
self.songs.append(self.song)
print(self.songs)
return self.songs
Я могу проанализировать файл по ссылке, только если я удалю xmlns="http://xspf.org/ns/0/"
во второй строке файла xspf
с объявлением по умолчанию я получаю эти ошибки:
Traceback (most recent call last):
File "main.py", line 192, in <module>
playlist_parser.parse_playlist(start,"playlist_files/playlist.xspf")
File "/home/chris/Έγγραφα/Python/Papinhio player/scripts/read_playlist.py", line 40, in parse_playlist
self.songs_data = self.read_xspf_file(start,filename)
File "/home/chris/Έγγραφα/Python/Papinhio player/scripts/read_playlist.py", line 132, in read_xspf_file
self.tracks = self.trackList.findall("track")
AttributeError: 'NoneType' object has no attribute 'findall'
Странно, я думаю ... Почему? Как я могу это исправить?
Редактировать: я пытался
self.playlist = self.tree.getroot()
self.playlist.set("xmlns","")
с не помогло.