我正在尝试解析一个具有少量attrib值的xml是整数。在这种情况下,python ElementTree类会引发一个ParseError
xml.etree.ElementTree.ParseError:格式不正确(令牌无效):第120行,col 第32页
这是我的xml
<Rectangle
leftTopX = 0
leftTopY = 0
rightBottomX = 20
rightBottomY = 40
/>
有关如何避免此ParseError的任何建议吗?
以下面的方式修改attrib值可以作为我的问题的解决方案。但我有多个要解析的xml文件。更改attrib值将花费更多时间。
<Rectangle
leftTopX = "0"
leftTopY = "0"
rightBottomX = "20"
rightBottomY = "40"
/>
答案 0 :(得分:1)
您可以切换到BeautifulSoup解析器 - 它在良好的形式方面更加宽容。例如:
from bs4 import BeautifulSoup
data = """
<Rectangle
leftTopX = 0
leftTopY = 0
rightBottomX = 20
rightBottomY = 40 />
"""
soup = BeautifulSoup(data)
print soup.rectangle
打印:
<rectangle lefttopx="0" lefttopy="0" rightbottomx="20" rightbottomy="40"></rectangle>
您也可以将其与lxml
解析器一起使用(您需要安装lxml
):
soup = BeautifulSoup(data, "lxml")
希望有所帮助。