您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 南通分类信息网,免费分类信息发布

使用PYTHON创建XML文档

2024/2/26 21:04:55发布27次查看
当用google查的时候,内容几乎都是一样的。但是你想要的东西,一个也没有。例如,我就找不到中国人写的如何使用python来创建一个xml文件。当然,直接用文件写的方式也能够达到同样的效果,但是毕竟容易出错,而且看起来不优雅。最后,我看了很多资料,终于明白如何使用python写一个xml文件了。以下就是一个简单的例子,这个例子是已经调试通过的,大家可以放心使用。
复制代码 代码如下:
import xml.dom.minidom
from xml.dom.domimplementation import implementation
import xml.sax.writer
import xml.utils
# create a new document with no namespace uri, qualified name,
# or document type
document = implementation.createdocument(none,none,none)
personnel = document.createelement(personnel)
personnel.setattribute('number', '5')
document.appendchild(personnel)
sexnode = document.createelement(sex)
sexnode.appendchild(document.createtextnode(male))
namenode = document.createelement(name)
namenode.appendchild(document.createtextnode(tianbin))
personnel.appendchild(sexnode)
personnel.appendchild(namenode)
out = open(tianbin.xml, w)
xml.dom.ext.prettyprint(document,out)
今天想使用python来创建一个xml文件。找了下资料,发现资料不是很多,基本上都是使用python来解析xml文件的。
比如我要将内容为
复制代码 代码如下:
dikatour
写入到xmlstuff.xml文件中去。
其实也很简单,基本原理如下:
我使用xml的dom方式,先在内存中创建一个空的dom树,然后不断增加我要的节点,最后形成我想要的dom,最后输出到文件中去。
1.我使用xml.dom.minidom这个module来创建xml文件
from xml.dom import minidom
2. 每个xml文件都是一个document对象,代表着内存中的dom树
doc = minidom.document()
3.有了空的dom树后,我们在上面添加根节点
rootnode = doc.createelement(root)
doc.appendchild(rootnode) #注意python的library reference里说,createelement后并没有将节点对象加到dom树上,需要自己手工加上
4.创建其它的节点
5.输出到xml文件中去
doc.writexml(f, /t, /t, /n, utf-8) #第一个参数f就是你的目标文件对象,第二个参数好像是和下面一个根节点的缩进排列格式,
第三个参数好像是其他节点与子节点的缩进排列格式,第四个参数制定了换行的格式(如果你填入 ,那就不换行了,所有的xml都缩在了一行上面 :) )
,第五个参数制定了xml内容的编码。除了第一个参数是必须的,其他参数都是可选择的。
最终代码如下(这个程序没什么价值,只是用来测试验证自己的想法,你更可能定义一个简单类或函数,将你的数据结构序列化到xml文件中):
复制代码 代码如下:
from xml.dom import minidom
import traceback
try:
f = open(xmlstuff.xml, w)
try:
doc = minidom.document()
rootnode = doc.createelement(root)
doc.appendchild(rootnode)
booknode = doc.createelement(book)
booknode.setattribute(isbn, 34909023)
rootnode.appendchild(booknode)
authornode = doc.createelement(author)
booknode.appendchild(authornode)
authortextnode = doc.createtextnode(dikatour)
authornode.appendchild(authortextnode)
doc.writexml(f, /t, /t, /n, utf-8)
except:
trackback.print_exc()
finally:
f.close()
except ioexception:
print open file failed
总结:
1. 目标(将一串xml字符串写到文件中)=>得到一串xml字符串=>dom树(minidom中有toxml方法将dom树的xml信息输出成字符串)
2. 使用python 2.5 documentation(也就是安装python时一起安装的python手册)中的library reference中的第8章(structrued markup processing tools),查阅手册很重要,另外查阅一些简明的python书籍
3.多思考,逻辑清晰了,即时象我一样对如何使用python操纵xml一无所知,稍微查下资料也就可以完成功能了
4. 恰好证明了python这门语言的强大的功能性 :) gets job done..
南通分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录