将XML编码写入fi时出错

2024-10-01 05:05:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我认为我采用的方法是正确的,但仍有一个编码错误:

from xml.dom.minidom import Document
import codecs

doc = Document()
wml = doc.createElement("wml")
doc.appendChild(wml)

property = doc.createElement("property")
wml.appendChild(property)

descriptionNode = doc.createElement("description")
property.appendChild(descriptionNode)
descriptionText = doc.createTextNode(description.decode('ISO-8859-1'))
descriptionNode.appendChild(descriptionText)

file = codecs.open('contentFinal.xml', 'w', encoding='ISO-8859-1')
file.write(doc.toprettyxml())
file.close()

description节点在ISO-8859-1 encoding中包含一些字符,这是由站点自己在meta标记中指定的编码。但当doc.toprettyxml()开始在文件中写入时,我遇到了以下错误:

^{pr2}$

为什么我在用相同的标准解码和编码时会出现这个错误?在

已编辑

我的脚本文件中有以下减速:

#!/usr/bin/python
# -*- coding: utf-8 -*-

可能这是矛盾吗?在


Tags: import编码doc错误isopropertydescriptionxml
1条回答
网友
1楼 · 发布于 2024-10-01 05:05:39

好吧,我找到了解决办法。当数据使用其他外国语言时,您只需在xml头中定义正确的编码即可。您不需要在file.write(doc.toprettyxml(encoding='ISO-8859-1'))中描述编码,即使是在打开一个要写入file = codecs.open('contentFinal.xml', 'w', encoding='ISO-8859-1')的文件时也是如此。下面是我使用的技巧。也许这不是一个专业的方法,但对我有用。在

file = codecs.open('abc.xml', 'w')
xm = doc.toprettyxml()
xm = xm.replace('<?xml version="1.0" ?>', '<?xml version="1.0" encoding="ISO-8859-1"?>')
file.write(xm)
file.close()

可能有一个方法来设置头中的默认编码,但我找不到它。 上述方法不会给浏览器带来任何错误,所有数据都能完美显示。在

相关问题 更多 >