我试图编写一个插件来读取XML文件中的数据
在test.xml里面有:
<data>
<items>
<item test1="Arabic Words"></item>
<item test2="English Words"></item>
</items>
</data>
,代码是:
# coding: utf-8
from xml.dom import minidom
xmldoc = minidom.parse('test.xml')
itemlist = xmldoc.getElementsByTagName('item')
test1 = itemlist[0].attributes['test1'].value
test2 = itemlist[1].attributes['test2'].value
print(test1)
print(test2)
但我遇到编码问题:我无法将其设置为utf-8。
如何使minidom
解释使用UTF-8编码的文件?
答案 0 :(得分:1)
通常,有效的XML以XML伪标签开头,其中包含编码:
<?xml version="1.0" encoding="UTF-8"?>
...
minidom
应该尊重这一点;如果你的文件有这样的标签但是没有被解释为UTF-8,你应该提出针对minidom
的错误;但我一般都希望你的文件根本不包含这一行。
您可以使用
minidom.parseString("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + open("file.xml","r").read())
解决这个问题(但我建议修复你的XML文件)。
答案 1 :(得分:-1)
使用编码/解码功能或导入编解码器。
实施例: x ='abcd' y = x.encode('utf-8') y.decode( 'UTF-8')
只需使用编码/解码并使用minidom来解析字符串而不是传递文件名。