使用PYTHON创建XML文档
发布时间:2020-12-16 19:48:23 所属栏目:Python 来源:网络整理
导读:当用GOOGLE查的时候,内容几乎都是一样的。但是你想要的东西,一个也没有。例如,我就找不到中国人写的如何使用PYTHON来创建一个XML文件。当然,直接用文件写的方式也能够达到同样的效果,但是毕竟容易出错,而且看起来不优雅。最后,我看了很多资料,终于明
当用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文件的。 比如我要将内容为 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <root> <book isbn="34909023"> <author> dikatour </author> </book> </root> 写入到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","/n","utf-8") #第一个参数f就是你的目标文件对象,第二个参数好像是<?xml>和下面一个根节点的缩进排列格式, 第三个参数好像是其他节点与子节点的缩进排列格式,第四个参数制定了换行的格式(如果你填入" ",那就不换行了,所有的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,"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.. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |