我是新手python用户,我正在尝试使用DOM库在xml文件中更改几行。
但是我面临着一个unicode问题来做这个动作。 我的xml文件有一行
<!--Selector generado a partir del proyecto de configuración : RigelJars_Configuration -->
似乎这行不能使用unicode'latin-1'(在此引用中:configuración)
writer.write("%s<!--%s-->%s" % (indent, self.data, newl))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 58: ordinal not in range(128)
以下简单代码:
# _*_ coding:utf-8 _*_
import os,re,sys
from xml.dom.minidom import DOMImplementation, Document,parse
for dirname,subdirs,files in os.walk('/tmp/lab/resource.jar'):
for filename in files:
if filename == 'variableCfgSelector.xml':
domapp=parse('/tmp/lab/resource.jar/variableCfgSelector.xml')
print('Arquivo atualmente sendo alterado: variableCfgSelector.xml ')
childs = [node for node in domapp.childNodes if node.nodeType == domapp.ELEMENT_NODE]
for parent in childs:
childs2 = [node for node in parent.childNodes if node.nodeType == domapp.ELEMENT_NODE]
for child in childs2:
if child.nodeName =='environment':
child.firstChild.replaceWholeText('ebanking')
domapp.writexml(open('/tmp/lab/resource.jar/novo_VariableCfgSelection.xml','w'),addindent='',newl='',encoding='UTF-8')
domapp.unlink()
答案 0 :(得分:0)
我的问题已使用简单的打开文件(作为文本文件)修复,而不是使用dom库的解析。 我的源文件是用ANSI格式编写的,使用open我可以定义适当的unicode。 谢谢大家