python minidom 注意事项

 研究了一下minidom,觉得里面的编码好乱,为了保证这个模板的可以正确运行,在使用时,需要注意以下几点

 1. 通过parseString分析分析一段xml结构时,最好将字符串编码成utf-8再传进去

 2. 通过createTextNode、createDocument添加结点时,需要将参数转抱成 unicode再传进去

 3. toprettyxml和toxml方法,只是将minidom对象中记录的字节流,原样的输出,不会进行编码,这点要切记

 4. 将一个dom结构写成一个指定编码格式的xml文件,可用codecs来完成

  

关于minidom结构写xml应用可参考:python minidom 写xml示例

 

  第3、4点见下示例:

  #-*- coding:utf-8 -*- from xml.dom.minidom import getDOMImplementation import codecs impl = getDOMImplementation() newdoc = impl.createDocument(None, 'root', None) top_element = newdoc.documentElement # 存进去的编码必须为unicode,如果不是,在写的时候极易将抛出异常 text = newdoc.createTextNode((u'哈哈')) top_element.appendChild(text) # toxml()相当于格式化输出结点内容,内容是什么编码格式,输出就是什么编码格式 a = top_element.toxml() print a f = open('test.xml', 'wb') # 创建一个写write,写出的内容编码格式在这里指定 writer = codecs.lookup('utf-8')[3](f) newdoc.writexml(writer, encoding='utf-8') writer.close() f.close()

 

你可能感兴趣的:(xml,python,import,encoding)