最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python解析xml文件操作實(shí)例

 更新時(shí)間:2014年10月05日 15:07:42   投稿:shichen2014  
這篇文章主要介紹了python解析xml文件操作實(shí)例,是操作XML文件的常見(jiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了python解析xml文件操作的實(shí)現(xiàn)方法。分享給大家供大家參考。具體方法如下:

xml文件內(nèi)容如下:

<?xml version="1.0" ?> 
<!--Simple xml document__chapter 8--> 
<book> 
  <title> 
    sample xml thing 
  </title> 
  <author> 
    <name> 
      <first> 
        ma 
      </first> 
      <last> 
        xiaoju 
      </last> 
    </name> 
    <affiliation> 
      Springs Widgets, Inc. 
    </affiliation> 
  </author> 
  <chapter number="1"> 
    <title> 
      First 
    </title> 
    <para> 
      I think widgets are greate.You should buy lots of them forom 
      <company> 
        Spirngy Widgts, Inc 
      </company> 
    </para> 
  </chapter> 
</book> 

python代碼:

from xml.dom import minidom, Node 
import re, textwrap 
 
class SampleScanner: 
  """""" 
 
  def __init__(self, doc): 
    """Constructor""" 
    assert(isinstance(doc, minidom.Document)) 
    for child in doc.childNodes: 
      if child.nodeType == Node.ELEMENT_NODE and \ 
        child.tagName == "book": 
        self.handle_book(child) 
         
  def handle_book(self, node): 
     
    for child in node.childNodes: 
      if child.nodeType != Node.ELEMENT_NODE: 
        continue 
      if child.tagName == "title": 
        print "Book titile is:", self.gettext(child.childNodes) 
      if child.tagName == "author": 
        self.handle_author(child) 
      if child.tagName == "chapter": 
        self.handle_chapter(child) 
         
  def handle_chapter(self, node): 
    number = node.getAttribute("number") 
    print "number:", number 
    title_node = node.getElementsByTagName("title") 
    print "title:", self.gettext(title_node) 
     
    for child in node.childNodes: 
      if child.nodeType != Node.ELEMENT_NODE: 
        continue 
      if child.tagName == "para": 
        self.handle_chapter_para(child) 
         
  def handle_chapter_para(self, node): 
    company = "" 
    company = self.gettext(node.getElementsByTagName("company")) 
    print "chapter:para:company", company 
     
         
  def handle_author(self, node): 
    for child in node.childNodes: 
      if child.nodeType != Node.ELEMENT_NODE: 
        continue 
      if child.tagName == "name": 
        self.handle_author_name(child) 
      if child.tagName == "affiliation": 
        print "affiliation:", self.gettext(child.childNodes) 
         
  def handle_author_name(self, node): 
    first = "" 
    last = "" 
    for child in node.childNodes: 
      if child.nodeType != Node.ELEMENT_NODE: 
        continue 
      if child.tagName == "first": 
        first = self.gettext(child.childNodes) 
      if child.tagName == 'last': 
        last = self.gettext(child.childNodes) 
         
    print "firstname:%s,lastname:%s" % (first, last) 
     
         
  def gettext(self, nodelist): 
    retlist = [] 
    for node in nodelist: 
      if node.nodeType == Node.TEXT_NODE: 
        retlist.append(node.wholeText) 
      elif node.hasChildNodes: 
        retlist.append(self.gettext(node.childNodes)) 
         
    return re.sub('\s+', " ", ''.join(retlist)) 
   
         
if __name__=="__main__": 
  doc = minidom.parse("simple.xml") 
  sample = SampleScanner(doc) 

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

相關(guān)文章

  • Python3與fastdfs分布式文件系統(tǒng)如何實(shí)現(xiàn)交互

    Python3與fastdfs分布式文件系統(tǒng)如何實(shí)現(xiàn)交互

    這篇文章主要介紹了Python3與fastdfs分布式文件系統(tǒng)如何實(shí)現(xiàn)交互,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python中的hashlib模塊使用實(shí)例

    python中的hashlib模塊使用實(shí)例

    這篇文章主要介紹了python中的hashlib模塊使用實(shí)例,hashlib是一個(gè)提供字符串加密功能的模塊,包含MD5和SHA的算法,MD5和SHA是摘要算法,文中以實(shí)例代碼講解hashlib模塊的基本用法,需要的朋友可以參考下
    2023-08-08
  • Python錯(cuò)誤提示:[Errno 24] Too many open files的分析與解決

    Python錯(cuò)誤提示:[Errno 24] Too many open files的分析與解決

    這篇文章主要給大家介紹了Python中出現(xiàn)錯(cuò)誤提示:[Errno 24] Too many open files的分析與解決,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02
  • Python中用戶(hù)輸入與while循環(huán)詳情

    Python中用戶(hù)輸入與while循環(huán)詳情

    這篇文章主要介紹了Python中用戶(hù)輸入與while循環(huán)詳情,,包括如何接收用戶(hù)輸入并進(jìn)行處理,在程序滿(mǎn)足一定的條件時(shí)讓程序一直運(yùn)行,通過(guò)獲取用戶(hù)輸入并學(xué)會(huì)控制程序在用戶(hù)想要結(jié)束時(shí)退出循環(huán),即可編寫(xiě)出交互式程序,下文詳細(xì)內(nèi)容介紹,需要的朋友可以參考一下
    2022-03-03
  • 解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問(wèn)題

    解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問(wèn)題

    今天小編就為大家分享一篇解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python實(shí)現(xiàn)查詢(xún)某個(gè)目錄下修改時(shí)間最新的文件示例

    Python實(shí)現(xiàn)查詢(xún)某個(gè)目錄下修改時(shí)間最新的文件示例

    這篇文章主要介紹了Python實(shí)現(xiàn)查詢(xún)某個(gè)目錄下修改時(shí)間最新的文件,涉及Python使用os與shutil模塊針對(duì)文件的遍歷、屬性獲取、讀寫(xiě)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • PyQt5+QtChart實(shí)現(xiàn)繪制極坐標(biāo)圖

    PyQt5+QtChart實(shí)現(xiàn)繪制極坐標(biāo)圖

    QChart是一個(gè)QGraphicScene中可以顯示的QGraphicsWidget。本文將利用QtChart實(shí)現(xiàn)極坐標(biāo)圖的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-12-12
  • Django通用類(lèi)視圖實(shí)現(xiàn)忘記密碼重置密碼功能示例

    Django通用類(lèi)視圖實(shí)現(xiàn)忘記密碼重置密碼功能示例

    今天小編就為大家分享一篇Django通用類(lèi)視圖實(shí)現(xiàn)忘記密碼重置密碼功能示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法

    Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法,涉及Python針對(duì)目錄下文本文件的遍歷、讀取及寫(xiě)入等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 利用Opencv實(shí)現(xiàn)圖片的油畫(huà)特效實(shí)例

    利用Opencv實(shí)現(xiàn)圖片的油畫(huà)特效實(shí)例

    這篇文章主要給大家介紹了關(guān)于利用Opencv實(shí)現(xiàn)圖片的油畫(huà)特效的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論

科尔| 莱芜市| 馆陶县| 高密市| 敦煌市| 清徐县| 青川县| 阳城县| 合川市| 临漳县| 荆州市| 永川市| 隆子县| 佛学| 鄢陵县| 建水县| 临漳县| 长泰县| 浠水县| 绵阳市| 大庆市| 石嘴山市| 来安县| 和硕县| 张家口市| 岗巴县| 洪江市| 邢台市| 宾川县| 同德县| 大城县| 萝北县| 利辛县| 宾阳县| 仁化县| 庆元县| 靖西县| 陇西县| 玉屏| 尚志市| 日喀则市|