我是python的新手,我正在尝试使用DOM库更改xml文件中的几行。你知道吗
但我在做这个动作时遇到了一个unicode问题。 我的xml文件有一行
<!--Selector generado a partir del proyecto de configuración : RigelJars_Configuration -->
似乎这一行不适用于unicode“拉丁-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()
我的问题已经通过使用一个简单的打开文件(作为文本文件)而不是使用dom库的解析来解决。 我的源文件与ANSI格式进行了统一编码,使用open我可以定义正确的unicode来工作。 谢谢大家
相关问题 更多 >
编程相关推荐