Python文件之----XML
1 #coding=utf-8 2 from xml.dom import minidom 3 from xml.dom.minidom import Document 4 import xml 5 def writeXML(filaName="test.xml"): 6 doc = Document() 7 feature=doc.createElement("feature") 8 doc.appendChild(feature) 9 father=doc.createElement("father") 10 father.setAttribute('name','noun') #元素属性 11 text = doc.createTextNode('系统')#元素值 12 13 feature.appendChild(father) 14 father.appendChild(text) 15 son=doc.createElement("son") 16 text = doc.createTextNode('系统')#元素值 17 son.appendChild(text) 18 father.appendChild(son) 19 f = open(filaName,'w') 20 f.write(doc.toprettyxml(indent = '')) 21 f.close() 22 def readXML(fileName="test.xml"): 23 dom = xml.dom.minidom.parse(fileName) #打开xml文档 24 root = dom.documentElement #得到文档元素对象 25 bb = root.getElementsByTagName('father') 26 b=bb[0] 27 print b.nodeName 28 print b.nodeValue 29 print b.nodeType 30 print b.getAttribute("name") 31 print b.firstChild.data.encode("utf-8") 32 def main(): 33 writeXML() 34 # readXML() 35 if __name__=="__main__": 36 main()
写入的xml文档内容:
<?xml version="1.0" ?> <feature> <father name="noun"> 系统 <son>系统</son> </father> </feature>
可能写入的xml文档格式不是很好看,显示父子关系不好,可通过文本写入的方式,调整xml的格式。
对于xml的每个节点有三种属性:
nodeName为结点名字。
nodeValue是结点的值,只对文本结点有效。
nodeType是结点的类型。catalog是ELEMENT_NODE类型
第一个系统是father的标签之间的数据。
1 #coding=utf-8 2 from xml.dom import minidom 3 from xml.dom.minidom import Document 4 import xml 5 def writeXML(filaName="test.xml"): 6 doc = Document() 7 feature=doc.createElement("feature") 8 doc.appendChild(feature) 9 father=doc.createElement("father") 10 father.setAttribute('name','noun') #元素属性 11 text = doc.createTextNode('系统')#元素值 12 13 feature.appendChild(father) 14 father.appendChild(text) 15 son=doc.createElement("son") 16 text = doc.createTextNode('系统')#元素值 17 son.appendChild(text) 18 father.appendChild(son) 19 f = open(filaName,'w') 20 f.write(doc.toprettyxml(indent = '')) 21 f.close() 22 def readXML(fileName="test.xml"): 23 dom = xml.dom.minidom.parse(fileName) #打开xml文档 24 root = dom.documentElement #得到文档元素对象 25 bb = root.getElementsByTagName('father') 26 b=bb[0] 27 print b.nodeName 28 print b.nodeValue 29 print b.nodeType 30 print b.getAttribute("name") 31 print b.firstChild.data.encode("utf-8") 32 def main(): 33 # writeXML() 34 readXML() 35 if __name__=="__main__": 36 main() 37 ''' 38 输出: 39 father 40 None 41 1 42 noun 43 系统 44 [Finished in 0.1s] 45 '''