2016-12-16 77 views
0

我试图解析使用Python和元素树,这是这种形式的一个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

好吧,它也显示在错误消息中: 回溯(最近一次调用最后一次): 文件“tracks.py”,行50,在 东西= ET.fromstring(FNAME) 文件 “C:\用户\左\ Anaconda3 \ lib中\ XML \ etree \ ElementTree.py”,线1334,在XML 返回parser.close() 我猜是1334线。但只要我能看到,那里没有错。至少第一次看。 –

回答

0

xml文件缩进出了什么问题。我不知道它实际上扮演了一个角色,但我保存了xml文件并使用Notepad ++打开它并工作。

+0

你能接受这个答案吗? 当人们没有接受答案时搜索未回答的问题。 谢谢。 –

+0

我已经这样做了,但它说:你可以在2天内接受你自己的答案。 –

+0

我忘了这件事,对不起。 –

相关问题