我正在阅读带有jml扩展名的文件。代码非常简单,读取
import xml.etree.ElementTree as ET
tree = ET.parse('VOAPoints_2010_M25.jml')
root = tree.getroot()
但我得到一个解析错误:
ParseError: not well-formed (invalid token): line 75, column 16
我试图读取的文件是之前使用过的数据集,因此我确信它没有任何问题。
答案 0 :(得分:1)
由于英镑符号存在问题,您可以使用character entity £
将其撤消。 Python甚至可以通过迭代读取每一行并在井号上有条件地替换它来自动化XML文件中的替换:
import xml.etree.ElementTree as ET
oldfile = "VOAPoints_2010_M25.jml"
newfile = "VOAPoints_2010_M25_new.jml"
with open(oldfile, 'r') as otxt:
for rline in otxt:
if "£" in rline:
rline = rline.replace("£", "£")
with open(newfile, 'a') as ntxt:
ntxt.write(rline)
tree = ET.parse(newfile)
root = tree.getroot()
答案 1 :(得分:1)
很抱歉将答案用作问题,但在评论中格式化这一点很痛苦。 下面的代码是否解决了您的问题?
import xml.etree.ElementTree as ET
myParser = ET.XMLParser(encoding="utf-8")
tree = ET.parse('VOAPoints_2010_M25.jml',parser=myParser)
root = tree.getroot()