Python - 使用unicode latin-1修改xml文件的问题

时间:2017-03-07 01:16:51

标签: python xml unicode

我是新手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()

1 个答案:

答案 0 :(得分:0)

我的问题已使用简单的打开文件(作为文本文件)修复,而不是使用dom库的解析。 我的源文件是用ANSI格式编写的,使用open我可以定义适当的unicode。 谢谢大家