在Python中解析XML文件也有Dom和Sax兩種方式,這里先介紹如何是使用Dom解析XML,這一篇文章是Dom生成XML文件,下一篇文章再繼續介紹Dom解析XML文件。
在生成XML文件中,我們主要使用下面的方法來完成。
主要方法
1、生成XML節點(node)
代碼如下:
createElement("node_name")
2、給節點添加屬性值(Attribute)
代碼如下:
node.setAttribute("att_name", "arr_value")
3、節點的標簽值(data)
代碼如下:
createTextNode("node_value")
其中第1、3點在創建完節點(節點值)之后,還需使用下面的方法添加到指點的節點的位置下面:
代碼如下:
prev_node.appendChild(cur_node)
這里的prev_node要添加節點的上一層節點,而cur_node即為當前要添加的節點了。
代碼演示
下面用代碼來演示下如何使用Dom來生成XML,這個是簡單版本,如下:
代碼如下:
'''
Created on 2012-8-28
@author: walfred
@module: domxml.genXML
@description:
'''
import xml.dom.minidom as Dom
if __name__ == "__main__":
doc = Dom.Document()
root_node = doc.createElement("book_store")
root_node.setAttribute("name", "newhua")
root_node.setAttribute("website", "http://www.jb51.net")
doc.appendChild(root_node)
book_node = doc.createElement("book1")
book_name_node = doc.createElement("name")
book_name_value = doc.createTextNode("hamlet")
book_name_node.appendChild(book_name_value)
book_node.appendChild(book_name_node)
book_author_node = doc.createElement("author")
book_author_value = doc.createTextNode("William Shakespeare")
book_author_node.appendChild(book_author_value)
book_node.appendChild(book_author_node)
root_node.appendChild(book_node)
f = open("book_store.xml", "w")
f.write(doc.toprettyxml(indent = "/t", newl = "/n", encoding = "utf-8"))
f.close()
這個代碼將在當前目錄下生成一個book_store.xml文件,我把它也貼在下面:
代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<book_store name="newhua" website="http://www.jb51.net">
<book1>
<name>hamlet</name>
新聞熱點
疑難解答