亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python使用minidom讀寫xml的方法

2020-01-04 18:07:39
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了Python使用minidom讀寫xml的方法,實例分析了使用minidom模塊操作XML文件的相關技巧,需要的朋友可以參考下

本文實例講述了Python使用minidom讀寫xml的方法。分享給大家供大家參考。具體分析如下:

一 python提供的xml支持

2種工業標準的xml解析方法-SAX和DOM。SAX(simple API for XML),是基于事件處理的,當XML文檔順序地讀入時,每次遇到一個元素會觸發相應的事件處理函數來處理。DOM(Document Object Model),通過構建一個樹結構來表現整個xml文檔,一旦樹被構建,可以通過DOM提供了接口來遍歷樹和提取相應的數據。

python還提供了python獨特的xml解析方法,相比于SAX和DOM更容易使用和更加快速,此方法為ElementTree。

python的xml模塊為:

1)xml.dom.minidom

2)xml.elementtree

3)xml.sax + xml.dom

二 xml實例:(employees.xml)

 

 
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <employees>  
  3. <employee>  
  4. <name>l inux </name>  
  5. <age> 30 </age>  
  6. </employee>  
  7. <employee>  
  8. <name>windows </name>  
  9. <age> 20 </age>  
  10. </employee>  
  11. </employees> 

三 使用xml.dom.minidom來讀寫xml

1)使用xml.dom.minidom來解析xml:

 

 
  1. def TestMiniDom():  
  2. from xml.dom import minidom  
  3. doc = minidom.parse( "employees.xml" )  
  4. # get root element: <employees/>  
  5. root = doc.documentElement  
  6. # get all children elements: <employee/> <employee/>  
  7. employees = root.getElementsByTagName( "employee" )  
  8. for employee in employees:  
  9. print ( " ------------------------------------------- " )  
  10. # element name : employee  
  11. print (employee.nodeName)  
  12. # element xml content : <employee><name>windows</name><age>20</age></employee>  
  13. # basically equal to toprettyxml function  
  14. print (employee.toxml())  
  15. nameNode = employee.getElementsByTagName( "name" )[0]  
  16. print (nameNode.childNodes)  
  17. print (nameNode.nodeName + ":" + nameNode.childNodes[0].nodeValue)  
  18. ageNode = employee.getElementsByTagName( "age" )[0]  
  19. print (ageNode.childNodes)  
  20. print (ageNode.nodeName + ":" + ageNode.childNodes[0].nodeValue)  
  21. print ( " ------------------------------------------- " )  
  22. for n in employee.childNodes:  
  23. print (n)  
  24. TestMiniDom() 

2)使用xml.dom.minidom來生成xml:

 

 
  1. def CreateXml():  
  2. import xml.dom.minidom  
  3. impl = xml.dom.minidom.getDOMImplementation()  
  4. dom = impl.createDocument(None'employees' , None)  
  5. root = dom.documentElement  
  6. employee = dom.createElement( 'employee' )  
  7. root.appendChild(employee)  
  8. nameE = dom.createElement( 'name' )  
  9. nameT = dom.createTextNode( 'linux' )  
  10. nameE.appendChild(nameT)  
  11. employee.appendChild(nameE)  
  12. ageE = dom.createElement( 'age' )  
  13. ageT = dom.createTextNode( '30' )  
  14. ageE.appendChild(ageT)  
  15. employee.appendChild(ageE) 
  16. f = open( 'employees2.xml' , 'w')  
  17. dom.writexml(f, addindent = ' ' , newl = '/n' ,encoding = 'utf-8' ) 
  18. f.close()  
  19. CreateXml() 

3)使用xml.dom.minidom需要注意的

*使用parse()或createDocument()返回的為DOM對象;

*使用DOM的documentElement屬性可以獲得Root Element;

*DOM為樹形結構,包含許多的nodes,其中element是node的一種,可以包含子elements,textNode也是node的一種,是最終的子節點;

*每個node都有nodeName,nodeValue,nodeType屬性,nodeValue是結點的值,只對textNode有效。對于textNode,想得到它的文本內容可以使用: .data屬性。

*nodeType是結點的類型,現在有以下:

'ATTRIBUTE_NODE''CDATA_SECTION_NODE''COMMENT_NODE''DOCUMENT_FRAGMENT_NODE'

'DOCUMENT_NODE''DOCUMENT_TYPE_NODE''ELEMENT_NODE''ENTITY_NODE''ENTITY_REFERENCE_NODE'

'NOTATION_NODE''PROCESSING_INSTRUCTION_NODE''TEXT_NODE'

*getElementsByTagName()可以根據名字來查找子elements;

*childNodes返回所有的子Nodes,其中所有的文本均為textNode,包含元素間的‘/n/r'和空格均為textNode;

*writexml() 時addindent=' '表示子元素的縮進,newl='/n'表示元素間的換行,encoding='utf-8'表示生成的xml的編碼格式()。

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品毛片| 日韩电影免费观看在线观看| 欧美成人午夜视频| 91精品久久久久久久久久久久久久| 国产日韩欧美日韩| 国产精品三级网站| 国产日韩在线亚洲字幕中文| 91po在线观看91精品国产性色| 9.1国产丝袜在线观看| 亚洲第一中文字幕| 欧美日韩国产综合新一区| 亚洲精品视频在线观看视频| 国产精品九九久久久久久久| 91精品国产91久久久久| 日韩av高清不卡| 国产精自产拍久久久久久蜜| 欧美人在线视频| 亚洲天堂男人天堂| 国产成人福利夜色影视| 久久国产加勒比精品无码| 欧美另类第一页| 欧美国产亚洲精品久久久8v| www国产亚洲精品久久网站| 在线播放国产一区二区三区| 亚洲91av视频| 国产成人精品综合| 日韩有码在线电影| 亚洲欧美日韩高清| 美女视频黄免费的亚洲男人天堂| 4p变态网欧美系列| 91国产美女在线观看| 91九色国产在线| 国产丝袜一区二区| 国产视频精品xxxx| 国产精品www| 亚洲人成网在线播放| 国产精品电影网| 国产在线视频欧美| 日韩欧美在线视频日韩欧美在线视频| 欧美黄网免费在线观看| 国产一区二区欧美日韩| 日韩av中文在线| 国产精品露脸av在线| 国产精品视频播放| 国产午夜精品全部视频播放| 欧美视频在线视频| 5278欧美一区二区三区| 国产精品91在线观看| 国产欧美日韩高清| 精品中文字幕视频| 欧美久久精品一级黑人c片| 精品日本高清在线播放| 日韩女优人人人人射在线视频| 成人精品视频99在线观看免费| 久久久亚洲影院| 亚洲二区在线播放视频| 精品视频在线播放色网色视频| 中文字幕免费精品一区| 久久视频在线观看免费| 911国产网站尤物在线观看| 欧美在线性爱视频| 亚洲自拍中文字幕| 精品视频9999| 亚洲欧美日韩在线高清直播| 中文字幕一区日韩电影| 欧美午夜激情视频| 色一情一乱一区二区| 久久人体大胆视频| 成人黄色免费片| 日韩成人在线视频观看| 色无极亚洲影院| 亚洲最大成人网色| 欧美亚洲国产视频小说| 国产精品永久免费| 欧美电影在线观看网站| 亚洲美女www午夜| 国产成人福利网站| 国产日产久久高清欧美一区| 国产美女精品视频| 北条麻妃99精品青青久久| 日本伊人精品一区二区三区介绍| 亚洲高清免费观看高清完整版| 亚洲四色影视在线观看| 911国产网站尤物在线观看| 精品福利一区二区| 久久夜色撩人精品| www.亚洲天堂| 98精品国产自产在线观看| 国产精品久久91| 日韩中文字幕欧美| 久久久久国产精品一区| 久久亚洲国产精品成人av秋霞| 91在线观看免费高清| 亚洲少妇中文在线| 亚洲天堂男人天堂女人天堂| xxav国产精品美女主播| 亚洲欧美日韩精品久久奇米色影视| 国产亚洲一区精品| 日韩最新中文字幕电影免费看| 国产va免费精品高清在线| 欧美在线播放视频| 亚洲精品综合久久中文字幕| 国产日韩在线观看av| 欧美日本亚洲视频| 成人妇女免费播放久久久| 91色视频在线导航| 国产免费观看久久黄| www.美女亚洲精品| 国产欧美一区二区白浆黑人| 精品免费在线观看| 夜夜躁日日躁狠狠久久88av| 亚洲第一福利在线观看| 欧美高清视频在线观看| 国产这里只有精品| 欧美综合国产精品久久丁香| 在线播放国产一区二区三区| 成人精品一区二区三区电影黑人| 久久久久亚洲精品| 日韩激情视频在线播放| 国产精品扒开腿做爽爽爽视频| 国产欧美日韩最新| 国产精品高清免费在线观看| 日韩精品极品视频免费观看| 日韩影视在线观看| 亚洲一区国产精品| 国产精品99久久久久久人| 91精品国产91久久久久福利| 国产精品久久久久久久久久久新郎| 中文字幕av一区中文字幕天堂| 欧美激情二区三区| 久久免费国产视频| 亚洲精品久久久久久久久久久久| 国产精品丝袜久久久久久高清| 精品久久久久久久久国产字幕| 欧美成人sm免费视频| 欧美亚洲另类制服自拍| 性欧美在线看片a免费观看| 欧美精品xxx| 日本一欧美一欧美一亚洲视频| 国产欧美日韩免费| 久久久久久久久久久久av| 亚洲人精品午夜在线观看| 欧美成人精品激情在线观看| 国产欧美精品一区二区三区介绍| 日韩女优人人人人射在线视频| 色香阁99久久精品久久久| 日韩精品在线免费| 久久在线精品视频| 亚洲网站在线看| 性欧美长视频免费观看不卡| xxx成人少妇69| 5252色成人免费视频| 欧美洲成人男女午夜视频| 色综合天天综合网国产成人网| 欧美在线亚洲在线| 欧美性黄网官网| 高清一区二区三区日本久| 欧美在线性视频| 国产精品久久9| 国产伊人精品在线| 久久人人爽人人爽爽久久| 精品偷拍一区二区三区在线看| 久久久999精品视频| 少妇av一区二区三区|