用Python读取xml文件

用Python读取xml文件,python,xml,Python,Xml,我正在读取一个扩展名为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 我试图读取的文件是以前使用过的数据集,因此我相信它没有问题 文件是 有人能帮忙吗 既

我正在读取一个扩展名为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
我试图读取的文件是以前使用过的数据集,因此我相信它没有问题

文件是
有人能帮忙吗

既然问题出在英镑符号上,你可以用
£。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()

很抱歉将答案用作问题,但在评论中格式化此内容是很痛苦的。 下面的代码是否解决了您的问题

import xml.etree.ElementTree as ET
myParser = ET.XMLParser(encoding="utf-8")
tree = ET.parse('VOAPoints_2010_M25.jml',parser=myParser)
root = tree.getroot()

发布XML文件内容事实上确实存在问题,但由于没有人强制进行验证,因此可能未被注意到。是否该文件是.jml,而我将其视为.XML?这是我第一次使用这种类型的文件。为了以防万一,请删除第75行中的英镑符号,并替换为更简单的L。这可能是编码是的,这是INDEED!!谢谢你@malarres。我对这类数据的不了解让我感到恐慌。