国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

  • <ruby id="sko9d"></ruby>
  • <rt id="sko9d"><optgroup id="sko9d"></optgroup></rt>
      <center id="sko9d"><tr id="sko9d"></tr></center>
    • <rt id="sko9d"></rt>

        • <li id="sko9d"><tbody id="sko9d"></tbody></li>

          1. <label id="sko9d"><del id="sko9d"></del></label>
            <label id="sko9d"></label>
            • masyarakat
              Artikel Topik Soal Jawab
              Belajar
              Kursus Kamus Pengaturcaraan
              Perpustakaan Alatan
              Alat pembangunan Kod sumber laman web Perpustakaan PHP Kesan khas JS Bahan laman web Pemalam sambungan
              Alat AI
              Masa lapang
              Muat Turun Permainan Tutorial Permainan
              cari
              Melayu
              簡體中文 English 繁體中文 日本語 ??? Melayu Fran?ais Deutsch
              Login
              singup
              Jadual Kandungan
              XML?" >什么是XML?
              API for XML )" >1.SAX (simple API for XML )
              Document Object Model)" >2.DOM(Document Object Model)
              3.ElementTree(元素樹)
              python使用SAX解析xml
              ContentHandler類方法介紹
              make_parser方法
              parser方法
              String方法" >parseString方法
              Python 解析XML實(shí)例
              使用xml.dom解析xml
              Rumah applet WeChat pembangunan WeChat Python之XML解析詳解

              Python之XML解析詳解

              大家講道理
              大家講道理
              Apr 11, 2017 pm 02:10 PM



              什么是XML?


              XML 指可擴(kuò)展標(biāo)記語言(eXtensible Markup Language)。

              XML 被設(shè)計用來傳輸和存儲數(shù)據(jù)。

              XML是一套定義語義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對這些部件加以標(biāo)識。

              它也是元標(biāo)記語言,即定義了用于定義其他與特定領(lǐng)域有關(guān)的、語義的、結(jié)構(gòu)化的標(biāo)記語言的句法語言。


              python對XML的解析

              常見的XML編程接口有DOM和SAX,這兩種接口處理XML文件的方式不同,當(dāng)然使用場合也不同。

              python有三種方法解析XML,SAX,DOM,以及ElementTree:

              1.SAX (simple API for XML )

              python 標(biāo)準(zhǔn)庫包含SAX解析器,SAX用事件驅(qū)動模型,通過在解析XML的過程中觸發(fā)一個個的事件并調(diào)用用戶定義的回調(diào)函數(shù)來處理XML文件。

              2.DOM(Document Object Model)

              將XML數(shù)據(jù)在內(nèi)存中解析成一個樹,通過對樹的操作來操作XML。

              3.ElementTree(元素樹)

              ElementTree就像一個輕量級的DOM,具有方便友好的API。代碼可用性好,速度快,消耗內(nèi)存少。

              注:因DOM需要將XML數(shù)據(jù)映射到內(nèi)存中的樹,一是比較慢,二是比較耗內(nèi)存,而SAX流式讀取XML文件,比較快,占用內(nèi)存少,但需要用戶實(shí)現(xiàn)回調(diào)函數(shù)(handler)。

              本章節(jié)使用到的XML實(shí)例文件movies.xml內(nèi)容如下:

              <collection shelf="New Arrivals"><movie title="Enemy Behind">
                 <type>War, Thriller</type>
                 <format>DVD</format>
                 <year>2003</year>
                 <rating>PG</rating>
                 <stars>10</stars>
                 <description>Talk about a US-Japan war</description></movie><movie title="Transformers">
                 <type>Anime, Science Fiction</type>
                 <format>DVD</format>
                 <year>1989</year>
                 <rating>R</rating>
                 <stars>8</stars>
                 <description>A schientific fiction</description></movie>
                 <movie title="Trigun">
                 <type>Anime, Action</type>
                 <format>DVD</format>
                 <episodes>4</episodes>
                 <rating>PG</rating>
                 <stars>10</stars>
                 <description>Vash the Stampede!</description></movie><movie title="Ishtar">
                 <type>Comedy</type>
                 <format>VHS</format>
                 <rating>PG</rating>
                 <stars>2</stars>
                 <description>Viewable boredom</description></movie></collection>

              python使用SAX解析xml

              SAX是一種基于事件驅(qū)動的API。

              利用SAX解析XML文檔牽涉到兩個部分:解析器和事件處理器。

              解析器負(fù)責(zé)讀取XML文檔,并向事件處理器發(fā)送事件,如元素開始跟元素結(jié)束事件;

              而事件處理器則負(fù)責(zé)對事件作出相應(yīng),對傳遞的XML數(shù)據(jù)進(jìn)行處理。

              • 1、對大型文件進(jìn)行處理;

              • 2、只需要文件的部分內(nèi)容,或者只需從文件中得到特定信息。

              • 3、想建立自己的對象模型的時候。

              在python中使用sax方式處理xml要先引入xml.sax中的parse函數(shù),還有xml.sax.handler中的ContentHandler。

              ContentHandler類方法介紹

              characters(content)方法

              調(diào)用時機(jī):

              從行開始,遇到標(biāo)簽之前,存在字符,content的值為這些字符串。

              從一個標(biāo)簽,遇到下一個標(biāo)簽之前, 存在字符,content的值為這些字符串。

              從一個標(biāo)簽,遇到行結(jié)束符之前,存在字符,content的值為這些字符串。

              標(biāo)簽可以是開始標(biāo)簽,也可以是結(jié)束標(biāo)簽。

              startDocument()方法

              文檔啟動的時候調(diào)用。

              endDocument()方法

              解析器到達(dá)文檔結(jié)尾時調(diào)用。

              startElement(name, attrs)方法

              遇到XML開始標(biāo)簽時調(diào)用,name是標(biāo)簽的名字,attrs是標(biāo)簽的屬性值字典。

              endElement(name)方法

              遇到XML結(jié)束標(biāo)簽時調(diào)用。


              make_parser方法

              以下方法創(chuàng)建一個新的解析器對象并返回。

              xml.sax.make_parser( [parser_list] )

              參數(shù)說明:

              • parser_list - 可選參數(shù),解析器列表


              parser方法

              以下方法創(chuàng)建一個 SAX 解析器并解析xml文檔:

              xml.sax.parse( xmlfile, contenthandler[, errorhandler])

              參數(shù)說明:

              • xmlfile - xml文件名

              • contenthandler - 必須是一個ContentHandler的對象

              • errorhandler - 如果指定該參數(shù),errorhandler必須是一個SAX ErrorHandler對象


              parseString方法

              parseString方法創(chuàng)建一個XML解析器并解析xml字符串:

              xml.sax.parseString(xmlstring, contenthandler[, errorhandler])

              參數(shù)說明:

              • xmlstring - xml字符串

              • contenthandler - 必須是一個ContentHandler的對象

              • errorhandler - 如果指定該參數(shù),errorhandler必須是一個SAX ErrorHandler對象


              Python 解析XML實(shí)例

              #!/usr/bin/python# -*- coding: UTF-8 -*-import xml.saxclass MovieHandler( xml.sax.ContentHandler ):
                 def init(self):
                    self.CurrentData = ""
                    self.type = ""
                    self.format = ""
                    self.year = ""
                    self.rating = ""
                    self.stars = ""
                    self.description = ""
              
                 # 元素開始事件處理
                 def startElement(self, tag, attributes):
                    self.CurrentData = tag      if tag == "movie":
                       print "*****Movie*****"
                       title = attributes["title"]
                       print "Title:", title   # 元素結(jié)束事件處理
                 def endElement(self, tag):
                    if self.CurrentData == "type":
                       print "Type:", self.type      elif self.CurrentData == "format":
                       print "Format:", self.format      elif self.CurrentData == "year":
                       print "Year:", self.year      elif self.CurrentData == "rating":
                       print "Rating:", self.rating
                    elif self.CurrentData == "stars":
                       print "Stars:", self.stars
                    elif self.CurrentData == "description":
                       print "Description:", self.description
                    self.CurrentData = ""
              
                 # 內(nèi)容事件處理
                 def characters(self, content):
                    if self.CurrentData == "type":
                       self.type = content
                    elif self.CurrentData == "format":
                       self.format = content
                    elif self.CurrentData == "year":
                       self.year = content
                    elif self.CurrentData == "rating":
                       self.rating = content
                    elif self.CurrentData == "stars":
                       self.stars = content
                    elif self.CurrentData == "description":
                       self.description = content
                
              if ( name == "main"):
                 
                 # 創(chuàng)建一個 XMLReader
                 parser = xml.sax.make_parser()
                 # turn off namepsaces
                 parser.setFeature(xml.sax.handler.feature_namespaces, 0)
              
                 # 重寫 ContextHandler
                 Handler = MovieHandler()
                 parser.setContentHandler( Handler )
                 
                 parser.parse("movies.xml")

              以上代碼執(zhí)行結(jié)果如下:

              *****Movie*****Title: Enemy BehindType: War, ThrillerFormat: DVDYear: 2003Rating: PGStars: 10Description: Talk about a US-Japan war*****Movie*****Title: TransformersType: Anime, Science FictionFormat: DVDYear: 1989Rating: RStars: 8Description: A schientific fiction*****Movie*****Title: TrigunType: Anime, ActionFormat: DVDRating: PGStars: 10Description: Vash the Stampede!*****Movie*****Title: IshtarType: ComedyFormat: VHSRating: PGStars: 2Description: Viewable boredom

              使用xml.dom解析xml

              文件對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展置標(biāo)語言的標(biāo)準(zhǔn)編程接口。

              一個 DOM 的解析器在解析一個 XML 文檔時,一次性讀取整個文檔,把文檔中所有元素保存在內(nèi)存中的一個樹結(jié)構(gòu)里,之后你可以利用DOM 提供的不同的函數(shù)來讀取或修改文檔的內(nèi)容和結(jié)構(gòu),也可以把修改過的內(nèi)容寫入xml文件。

              python中用xml.dom.minidom來解析xml文件,實(shí)例如下:

              #!/usr/bin/python# -*- coding: UTF-8 -*-from xml.dom.minidom import parseimport xml.dom.minidom# 使用minidom解析器打開 XML 文檔DOMTree = xml.dom.minidom.parse("movies.xml")collection = DOMTree.documentElementif collection.hasAttribute("shelf"):
                 print "Root element : %s" % collection.getAttribute("shelf")# 在集合中獲取所有電影movies = collection.getElementsByTagName("movie")# 打印每部電影的詳細(xì)信息for movie in movies:
                 print "*****Movie*****"
                 if movie.hasAttribute("title"):
                    print "Title: %s" % movie.getAttribute("title")
              
                 type = movie.getElementsByTagName(&#39;type&#39;)[0]
                 print "Type: %s" % type.childNodes[0].data
                 format = movie.getElementsByTagName(&#39;format&#39;)[0]
                 print "Format: %s" % format.childNodes[0].data
                 rating = movie.getElementsByTagName(&#39;rating&#39;)[0]
                 print "Rating: %s" % rating.childNodes[0].data
                 description = movie.getElementsByTagName(&#39;description&#39;)[0]
                 print "Description: %s" % description.childNodes[0].data

              以上程序執(zhí)行結(jié)果如下:

              Root element : New Arrivals*****Movie*****Title: Enemy BehindType: War, ThrillerFormat: DVDRating: PGDescription: Talk about a US-Japan war*****Movie*****Title: TransformersType: Anime, Science FictionFormat: DVDRating: RDescription: A schientific fiction*****Movie*****Title: TrigunType: Anime, ActionFormat: DVDRating: PGDescription: Vash the Stampede!*****Movie*****Title: IshtarType: ComedyFormat: VHSRating: PGDescription: Viewable boredom

              Atas ialah kandungan terperinci Python之XML解析詳解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

              Kenyataan Laman Web ini
              Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

              Alat AI Hot

              Undress AI Tool

              Undress AI Tool

              Gambar buka pakaian secara percuma

              Undresser.AI Undress

              Undresser.AI Undress

              Apl berkuasa AI untuk mencipta foto bogel yang realistik

              AI Clothes Remover

              AI Clothes Remover

              Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

              Clothoff.io

              Clothoff.io

              Penyingkiran pakaian AI

              Video Face Swap

              Video Face Swap

              Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

              Tunjukkan Lagi

              Artikel Panas

              Panduan Membina Rumput Wonder | Uma Musume Pretty Derby
              1 bulan yang lalu By Jack chen
              <??>: 99 Malam di Hutan - Semua Lencana Dan Cara Membuka Kunci Mereka
              4 minggu yang lalu By DDD
              Panduan Suhu Rimworld Odyssey untuk Kapal dan Gravtech
              3 minggu yang lalu By Jack chen
              Mejiro Ryan Build Guide | Uma Musume Pretty Derby
              3 minggu yang lalu By Jack chen
              Rimworld Odyssey Cara Ikan
              3 minggu yang lalu By Jack chen
              Tunjukkan Lagi

              Alat panas

              Notepad++7.3.1

              Notepad++7.3.1

              Editor kod yang mudah digunakan dan percuma

              SublimeText3 versi Cina

              SublimeText3 versi Cina

              Versi Cina, sangat mudah digunakan

              Hantar Studio 13.0.1

              Hantar Studio 13.0.1

              Persekitaran pembangunan bersepadu PHP yang berkuasa

              Dreamweaver CS6

              Dreamweaver CS6

              Alat pembangunan web visual

              SublimeText3 versi Mac

              SublimeText3 versi Mac

              Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

              Tunjukkan Lagi

              Topik panas

              Tutorial Laravel
              1601
              29
              Tutorial PHP
              1502
              276
              Tunjukkan Lagi

              Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!

              Tentang kita Penafian Sitemap

              ? php.cn All rights reserved

              感谢您访问我们的网站,您可能还对以下资源感兴趣:

              国产av日韩一区二区三区精品

              <li id="ypnkw"></li>