我使用minidom编写了一个读取XML文件的脚本:
from xml.dom.minidom import parse
for File in Data['FileList']:
Xml = parse(File)
#do something
运行良好,但有些人正在创建XML,在XML中定义UTF-8编码并在标签中使用德语Umlaute,因此我遇到了xml.parsers.expat.ExpatError:格式不正确(无效令牌)。
如果我在XML中手动更改为encoding =“ISO-8859-1”,它运行正常。
是否有更优雅的方式来更改编码,而不是编辑XML文件,例如告诉minidom使用不同于XML中定义的编码?
答案 0 :(得分:1)
我建议你这个解决方案:
在解析文件之前,正常打开它并用这一行替换与XML标题对应的第一行:
<?xml version="1.0" encoding="ISO-8859-1"?>
然后保存文件并将其传递给minidom.parse()
功能。
这可以帮助您替换每个文件中的第一行:Search and replace a line in a file in Python