<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      python類庫31[使用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)

      <?xml version="1.0" encoding="UTF-8"?>
       <employees> 
        <employee> 
          <name>linux</name>
          <age>30</age>
        </employee>
        <employee> 
          <name>windows</name>
          <age>20</age>
        </employee>
       </employees>

       

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

       

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

      def TestMiniDom():
        
      from xml.dom import minidom
        doc 
      = minidom.parse("employees.xml")
        
        
      # get root element: <employees/>
        root = doc.documentElement
        
        
      # get all children elements: <employee/> <employee/>
        employees = root.getElementsByTagName("employee")
        
        
      for employee in employees:
          
      print("-------------------------------------------")
          
      # element name : employee
          print (employee.nodeName)
          
      # element xml content : <employee><name>windows</name><age>20</age></employee>
          # basically equal to toprettyxml function
          print (employee.toxml())
          
          nameNode 
      = employee.getElementsByTagName("name")[0]
          
      print (nameNode.childNodes)
          
      print (nameNode.nodeName + ":" + nameNode.childNodes[0].nodeValue)
          ageNode 
      = employee.getElementsByTagName("age")[0]
          
      print (ageNode.childNodes)
          
      print (ageNode.nodeName + ":" + ageNode.childNodes[0].nodeValue)
          
          
      print("-------------------------------------------")
          
      # children nodes :  \n is one text element
          # [
          # <DOM Text node "' \n    '">, 
          # <DOM Element: name at 0xc9e490>, 
          # <DOM Text node "'\n    '">, 
          # <DOM Element: age at 0xc9e4f0>, 
          # <DOM Text node "'\n  '">
          # ] 
          for n in employee.childNodes:
            
      print (n)

      TestMiniDom()

       

      運行結果:

      -------------------------------------------
      employee
      <employee>
          
      <name>linux</name>
          
      <age>30</age>
        
      </employee>
      [
      <DOM Text node "'linux'">]
      name:linux
      [
      <DOM Text node "'30'">]
      age:30
      -------------------------------------------
      <DOM Text node "' \n    '">
      <DOM Element: name at 0xc9f590>
      <DOM Text node "'\n    '">
      <DOM Element: age at 0xc9f5f0>
      <DOM Text node "'\n  '">
      -------------------------------------------
      employee
      <employee>
          
      <name>windows</name>
          
      <age>20</age>
        
      </employee>
      [
      <DOM Text node "'windows'">]
      name:windows
      [
      <DOM Text node "'20'">]
      age:20
      -------------------------------------------
      <DOM Text node "' \n    '">
      <DOM Element: name at 0xc9f6b0>
      <DOM Text node "'\n    '">
      <DOM Element: age at 0xc9f710>
      <DOM Text node "'\n  '">

       

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

      def GenerateXml():
        
      import xml.dom.minidom
        impl 
      = xml.dom.minidom.getDOMImplementation()
        dom 
      = impl.createDocument(None, 'employees', None)
        root 
      = dom.documentElement  
        employee 
      = dom.createElement('employee')
        root.appendChild(employee)
        
        nameE
      =dom.createElement('name')
        nameT
      =dom.createTextNode('linux')
        nameE.appendChild(nameT)
        employee.appendChild(nameE)
        
        ageE
      =dom.createElement('age')
        ageT
      =dom.createTextNode('30')
        ageE.appendChild(ageT)
        employee.appendChild(ageE)
        

        f
      = open('employees2.xml''w', encoding='utf-8')
        dom.writexml(f, 
      addindent='  ', newl='\n',encoding='utf-8')
        f.close()  

      GenerateXml()

       

      運行結果: 

      <?xml version="1.0" encoding="utf-8"?>
      <employees>
        
      <employee>
          
      <name>
            linux
          
      </name>
          
      <age>
            30
          
      </age>
        
      </employee>
      </employees>

       

      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的編碼格式(<?xml version="1.0" encoding="utf-8"?>)。

       

      參考:

      http://boyeestudio.cnblogs.com/archive/2005/08/16/216408.html

      http://www.dnbcw.com/biancheng/python/pnwb252539.html

      http://blog.csdn.net/kiki113/archive/2009/04/15/4080789.aspx

       

      posted @ 2011-01-06 16:50  iTech  閱讀(32974)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品一区二区三区不| 国产360激情盗摄全集| 辛集市| 国产精品午夜福利视频| 人妻一区二区三区人妻黄色| 国产精品国产三级国快看| 四虎网址| 在线精品国产成人综合| 仪征市| 日韩中文字幕高清有码| 国产AV国片精品有毛| yy111111在线尤物| 性欧美乱熟妇xxxx白浆| 麻豆成人精品国产免费| 久久av无码精品人妻系列试探| 国产午夜无码视频在线观看| 国产手机在线αⅴ片无码观看| 最新精品露脸国产在线| 美女禁区a级全片免费观看| 国产成人片无码视频在线观看| 免费无码影视在线观看mov| 国产成人综合亚洲精品国产| 亚亚洲视频一区二区三区| 欧美老少配性行为| 国产男女猛烈无遮挡免费视频| 视频一区视频二区视频三区| 天天澡日日澡狠狠欧美老妇| 国产一区二区高清不卡| 国产国语一级毛片| 成人一区二区三区激情视频| 综合区一区二区三区狠狠| 尤物yw193无码点击进入| 国产裸体无遮挡免费精品| 亚洲熟女片嫩草影院| 最近中文国语字幕在线播放| 国产精品中文字幕第一区| 久久男人av资源站| 高清在线一区二区三区视频| 国产精品无码无需播放器| 欧美 喷水 xxxx| 午夜dv内射一区二区|