Python使用unicode拉丁语1修改xml文件的问题

2024-10-03 06:19:05 发布

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

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

Tags: 文件innodechildforiflabunicode
1条回答
网友
1楼 · 发布于 2024-10-03 06:19:05

我的问题已经通过使用一个简单的打开文件(作为文本文件)而不是使用dom库的解析来解决。 我的源文件与ANSI格式进行了统一编码,使用open我可以定义正确的unicode来工作。 谢谢大家

相关问题 更多 >