欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用sax模塊解析XML文件示例

 更新時間:2019年04月04日 10:18:57   作者:薔薇Nina  
這篇文章主要介紹了Python使用sax模塊解析XML文件,結(jié)合實例形勢分析了Python使用sax模塊針對xml文件進行讀取、解析、內(nèi)容處理等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python使用sax模塊解析XML文件。分享給大家供大家參考,具體如下:

XML樣例:

<?xml version="1.0"?>
<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>

SAX解析代碼展示:

from xml import sax
class MovieHandler(sax.ContentHandler):
  def __init__(self):
    # 初始化數(shù)據(jù),并增加一個當前數(shù)據(jù)
    self.CurrentData = ""
    self.type = ""
    self.format = ""
    self.year = ""
    self.rating = ""
    self.stars = ""
    self.description = ""
  # 文檔啟動的時候調(diào)用
  def startDocument(self):
    print('XML開始解析中...')
  # 元素開始事件處理
  def startElement(self, name, attrs):
    self.CurrentData=name
    if self.CurrentData=='movie':
      print('*********movie*********')
      title=attrs['title']
      print('Title:{0}'.format(title))
  # 內(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
  # 元素結(jié)束事件處理
  def endElement(self, name):
    if self.CurrentData=='type':
      print('Type:{0}'.format(self.type))
    elif self.CurrentData=='format':
      print('Format:{0}'.format(self.format))
    elif self.CurrentData=='year':
      print('Year:{0}'.format(self.year))
    elif self.CurrentData == 'rating':
      print('Rating:{0}'.format(self.rating))
    elif self.CurrentData == 'stars':
      print('Stars:{0}'.format(self.stars))
    elif self.CurrentData == 'description':
      print('Description:{0}'.format(self.description))
    self.CurrentData = ""
  # 文檔結(jié)束的時候調(diào)用
  def endDocument(self):
    print('XML文檔解析結(jié)束!')
if __name__=='__main__':
  handler=MovieHandler()
  parser = sax.make_parser()
  # parser.setFeature(sax.handler.feature_namespaces, 0)
  parser.setContentHandler(handler)
  parser.parse("sax_test.xml")

PS:這里再為大家提供幾款關(guān)于xml操作的在線工具供大家參考使用:

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.jb51.net/code/xmlformat

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作xml數(shù)據(jù)技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python 讀取dicom文件,生成info.txt和raw文件的方法

    python 讀取dicom文件,生成info.txt和raw文件的方法

    今天小編就為大家分享一篇python 讀取dicom文件,生成info.txt和raw文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • PHP函數(shù)__autoload失效原因及解決方法

    PHP函數(shù)__autoload失效原因及解決方法

    在本篇文章里小編給大家整理的是一篇關(guān)于PHP函數(shù)__autoload失效原因及解決方法,有興趣的朋友們可以學習下。
    2021-09-09
  • 10行Python代碼計算汽車數(shù)量的實現(xiàn)方法

    10行Python代碼計算汽車數(shù)量的實現(xiàn)方法

    這篇文章主要介紹了10行Python代碼計算汽車數(shù)量的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Python中的bytes類型用法及實例分享

    Python中的bytes類型用法及實例分享

    這篇文章主要介紹了Python中的bytes類型及其用法,Python?bytes?類型用來表示一個字節(jié)串,bytes?只負責以字節(jié)序列的形式來存儲數(shù)據(jù),下面對其的相關(guān)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-03-03
  • python3實現(xiàn)公眾號每日定時發(fā)送日報和圖片

    python3實現(xiàn)公眾號每日定時發(fā)送日報和圖片

    這篇文章主要為大家詳細介紹了python3實現(xiàn)公眾號每日定時發(fā)送日報和圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python自動發(fā)送郵件的方法實例總結(jié)

    Python自動發(fā)送郵件的方法實例總結(jié)

    這篇文章主要介紹了Python自動發(fā)送郵件的方法,結(jié)合實例形式總結(jié)分析了Python使用smtplib和email模塊發(fā)送郵件的相關(guān)使用技巧與操作注意事項,需要的朋友可以參考下
    2018-12-12
  • Pygame?transform模塊入門介紹

    Pygame?transform模塊入門介紹

    pygame.transform模塊允許您對加載、創(chuàng)建后的圖像進行一系列操作,比如調(diào)整圖像大小、旋轉(zhuǎn)圖片等操作,感興趣的可以了解一下
    2022-08-08
  • Python之批量創(chuàng)建文件的實例講解

    Python之批量創(chuàng)建文件的實例講解

    今天小編就為大家分享一篇Python之批量創(chuàng)建文件的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python獲取Linux發(fā)行版名稱

    python獲取Linux發(fā)行版名稱

    這篇文章主要介紹了python獲取Linux發(fā)行版名稱的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Python隨手筆記第一篇(2)之初識列表和元組

    Python隨手筆記第一篇(2)之初識列表和元組

    Python中,列表和元組是一種數(shù)據(jù)結(jié)構(gòu):序列,序列中的每個元素都被分配一個序號,元素的位置,第一原元素的位置為0,因此類推,序列是最基本的數(shù)據(jù)結(jié)構(gòu),本文給大家分享Python隨手筆記第一篇(2)之初識列表和元組,感興趣的朋友一起學習吧
    2016-01-01

最新評論