我试图解析使用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)
但是没有任何改变。
你能确定它告诉你的xml文件的哪一行吗?这可能是正确的,并且xml格式不正确(缺少匹配标签等) – CoryKramer
好吧,它也显示在错误消息中: 回溯(最近一次调用最后一次): 文件“tracks.py”,行50,在 东西= ET.fromstring(FNAME) 文件 “C:\用户\左\ Anaconda3 \ lib中\ XML \ etree \ ElementTree.py”,线1334,在XML 返回parser.close() 我猜是1334线。但只要我能看到,那里没有错。至少第一次看。 –