当前位置:  开发笔记 > 编程语言 > 正文

如何将xml文件保存到磁盘?

如何解决《如何将xml文件保存到磁盘?》经验,为你挑选了2个好方法。

我做了类似的东西这个,但不能找到一种方法,结果写入到一个XML文件.



1> David Z..:

您链接到的网页上的代码用于doc.toprettyxml从XML DOM创建字符串,因此您只需将该字符串写入文件:

f = open("output.xml", "w")
try:
    f.write(doc.toprettyxml(indent="  "))
finally:
    f.close()

在Python 2.6(或者我认为2.7,无论何时出现),你可以使用" with"语句:

with open("output.xml", "w") as f:
    f.write(doc.toprettyxml(indent="  "))

如果放的话,这也适用于Python 2.5

from __future__ import with_statement

在文件的开头.



2> bobince..:

coonj是正确的,但xml.dom.ext.PrettyPrint是越来越被忽视的PyXML扩展包的一部分.如果你想留在提供的标准迷你体内,你会说:

f= open('yourfile.xml', 'wb')
doc.writexml(f, encoding= 'utf-8')
f.close()

(或者使用David提到的'with'语句使其略短.使用模式'wb'来避免Windows上不需要的CRLF换行符干扰UTF-16等编码.因为XML有自己的处理换行符解释的机制,所以应该被视为二进制文件而不是文本.)

如果你不包含'encoding'参数(对writexml或toprettyxml),它会尝试直接写一个Unicode字符串到文件,所以如果有任何非ASCII字符,你会得到一个UnicodeEncodeError.不要尝试.encode()自己的toprettyxml的结果; 对于非UTF-8编码,这可以生成非格式良好的XML.

没有'writeprettyxml()'函数,但是这样做很简单:

with open('output.xml', 'wb') as f:
    doc.writexml(f, encoding= 'utf-8', indent= '    ', newl= '\n')

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有