2016-12-16 4 views
0

Я пытаюсь разобрать Itunes библиотеку XML с питона и элементом дерева, который имеет такой вид:xml.etree.ElementTree.ParseError: не хорошо сформирован (недействительный маркер): строка 104, столбец 109

<plist version="1.0"> 
    <dict> 
     <key>Major Version</key> 
     <integer>1</integer> 
     <key>Minor Version</key> 
     <integer>1</integer> 
     ... 
     ... 
     ... 
     <dict> 
      <key>Track ID</key> 
      <integer>156</integer> 
      <key>Name</key> 
      <string>Stairway to heaven</string> 
      ... 
      ... 
     </dict> 
     <dict> 
      <key>Track ID</key> 
      <integer>342</integer> 
      <key>Name</key> 
      <string>Summer of 69</string> 
      ... 
      ... 
     </dict> 
    </dict> 
</plist> 

Я пытался разобрать его: импорта xml.etree.ElementTree, как ET

fname = input('Enter file name: ') 
stuff = ET.parse(fname) 

НО я получаю сообщение об ошибке, как это: «xml.etree.ElementTree.ParseError: не хорошо сформирован (недействительный маркер): строка 104, столбец 109 ". Я просматривал через Stackoverflow перед публикацией, но я не мог найти ничего полезного для моего сообщения о ситуации. Может ли кто-нибудь отправить какую-либо родственную запись, которую я, возможно, случайно пропустил или помог?

P.S. Я попытался изменить кодировку на «utf-8», но ничего не произошло. Я также пробовал:

parser = etree.XMLParser(recover=True) 

но ничего не изменилось.

+0

Можете ли вы определить, какую строку файла xml вам сообщают? Это может быть правильно, и xml плохо сформирован (отсутствует соответствующий тег и т. Д.) – CoryKramer

+0

Ну, это также показывает это в сообщении об ошибке: Traceback (последний последний звонок): Файл "tracks.py", line 50, в вещи = ET.fromstring (Fname) Файл "C: \ Users \ Left \ Anaconda3 \ Lib \ XML \ etree \ ElementTree.py", линии 1334, в XML возврата parser.close() я думаю, это линия 1334. но пока я вижу, там нет ничего плохого. по крайней мере, с первого взгляда. –

ответ

0

Ошибка была в отладке файла xml. Я не знал, что это действительно играет роль, но я сохранил файл xml и открыл его с помощью Notepad ++ и работал.

+0

Можете ли вы принять этот ответ? Когда люди не отвечают на вопрос, не принимают ответы. Спасибо. –

+0

Я уже сделал это, но он говорит: вы можете принять свой собственный ответ через 2 дня. –

+0

Я забыл об этом, извините. –