How does python generate XML files with DOM modules?
Main method Three points:
First, generate XML nodes (node)
CreateElement ("Node_name")
Then, add the attribute value to the node (Attribute)
Node.setattribute ("Att_name", "Arr_value")
Finally, the tag value of the node (data)
createTextNode ("Node_value")
1th, 3 points after the node (node value) is created, you also need to use the following method to add to the location of the pointing node:
Prev_node.appendchild (Cur_node)
The prev_node here is to add the upper node of the node, and Cur_node is the node that is currently being added.
The code is as follows:
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", "codego. 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 ()
This code will generate a book_store.xml file in the current directory:
<?xml version= "1.0" encoding= "Utf-8"?>
<book_store name= "Newhua" website= " Codego . NET ">
<book1>
<name>hamlet</name>
<author>william shakespeare</author>
</book1>
</book_store>
The code is as follows:
Created on 2012-8-28
@author: walfred
@module: Domxml.wxmlbydom
@description:
Import Xml.dom.minidom as Dom
Class Xmlgenerator:
def __init__ (self, xml_name):
Self.doc = Dom.document ()
Self.xml_name = Xml_name
def createnode (self, node_name):
Return Self.doc.createElement (Node_name)
def addNode (self, node, Prev_node = None):
Cur_node = node
If Prev_node is not None:
Prev_node.appendchild (Cur_node)
Else
Self.doc.appendChild (Cur_node)
Return Cur_node
def setnodeattr (self, node, att_name, value):
Cur_node = node
Cur_node.setattribute (Att_name, value)
def setnodevalue (self, Cur_node, value):
Node_data = Self.doc.createTextNode (value)
Cur_node.appendchild (Node_data)
def genxml (self):
f = open (Self.xml_name, "w")
F.write (self.doc.toprettyxml (indent = "\ T", newl = "\ n", encoding = "Utf-8"))
F.close ()
if __name__ = = "__main__":
Myxmlgenerator = Xmlgenerator ("Book_store.xml")
#xml root Node
Node_book_store = Myxmlgenerator.createnode ("Book_store")
Myxmlgenerator.setnodeattr (Node_book_store, "name", "New Hua")
Myxmlgenerator.setnodeattr (Node_book_store, "website", "Codego.net")
Myxmlgenerator.addnode (node = node_book_store)
#book01
node_book_01 = Myxmlgenerator.createnode ("book")
Node_book_01_name = Myxmlgenerator.createnode ("name")
Myxmlgenerator.setnodevalue (Node_book_01_name, "Hamlet")
Myxmlgenerator.addnode (Node_book_01_name, node_book_01)
Node_book_01_author = Myxmlgenerator.createnode ("author")
Myxmlgenerator.setnodevalue (Node_book_01_author, "William Shakespeare")
Myxmlgenerator.addnode (Node_book_01_author, node_book_01)
Node_book_01_price = Myxmlgenerator.createnode ("Price")
Myxmlgenerator.setnodevalue (Node_book_01_price, "$ $")
Myxmlgenerator.addnode (Node_book_01_price, node_book_01)
Node_book_01_grade = Myxmlgenerator.createnode ("Grade")
Myxmlgenerator.setnodevalue (Node_book_01_grade, "good")
Myxmlgenerator.addnode (Node_book_01_grade, node_book_01)
Myxmlgenerator.addnode (node_book_01, Node_book_store)
#book 02
node_book_02 = Myxmlgenerator.createnode ("book")
Node_book_02_name = Myxmlgenerator.createnode ("name")
Myxmlgenerator.setnodevalue (Node_book_02_name, "Shuihu")
Myxmlgenerator.addnode (Node_book_02_name, node_book_02)
Node_book_02_author = Myxmlgenerator.createnode ("author")
Myxmlgenerator.setnodevalue (Node_book_02_author, "Naian shi")
Myxmlgenerator.addnode (Node_book_02_author, node_book_02)
Node_book_02_price = Myxmlgenerator.createnode ("Price")
Myxmlgenerator.setnodevalue (Node_book_02_price, "$")
Myxmlgenerator.addnode (Node_book_02_price, node_book_02)
Node_book_02_grade = Myxmlgenerator.createnode ("Grade")
Myxmlgenerator.setnodevalue (Node_book_02_grade, "good")
Myxmlgenerator.addnode (Node_book_02_grade, node_book_02)
Myxmlgenerator.addnode (node_book_02, Node_book_store)
#gen
Myxmlgenerator.genxml ()
The same method will generate a Book_store.xml file in this directory with the following code:
<?xml version= "1.0" encoding= "Utf-8"?>
<book_store name= "New Hua" website= " Codego . NET ">
<book>
<name>Hamlet</name>
<author>william shakespeare</author>
<price>$20</price>
<grade>good</grade>
</book>
<book>
<name>shuihu</name>
<author>naian shi</author>
<price>$200</price>
<grade>good</grade>
</book>
</book_store>
This article is from the "10073178" blog, please be sure to keep this source http://10073178.blog.51cto.com/10063178/1629093
How Python generates XML files with DOM modules