久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 使用python自帶的xml.dom創(chuàng)建和解析xml

        使用python自帶的xml.dom創(chuàng)建和解析xml

        來(lái)源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-11-07 14:27:58 1699338478

        python中的xml.dom模塊使用的就是傳統(tǒng)的dom解析api和方法。所以也就不寫什么了,主要就是練習(xí)敲敲代碼,繼續(xù)熟悉python。本文通過(guò)xml.dom.minidom創(chuàng)建一個(gè)xml文檔,然后再解析出來(lái),用以熟悉相關(guān)接口方法的使用。

        創(chuàng)建一個(gè)xml文檔:

        '''

        Createdon2012-1-10

        Createaxmldocument

        @author:xiaojay

        '''

        fromxml.domimportminidom

        doc=minidom.Document()

        doc.appendChild(doc.createComment("Thisisasimplexml."))

        booklist=doc.createElement("booklist")

        doc.appendChild(booklist)

        defaddBook(newbook):

        book=doc.createElement("book")

        book.setAttribute("id",newbook["id"])

        title=doc.createElement("title")

        title.appendChild(doc.createTextNode(newbook["title"]))

        book.appendChild(title)

        author=doc.createElement("author")

        name=doc.createElement("name")

        firstname=doc.createElement("firstname")

        firstname.appendChild(doc.createTextNode(newbook["firstname"]))

        lastname=doc.createElement("lastname")

        lastname.appendChild(doc.createTextNode(newbook["lastname"]))

        name.appendChild(firstname)

        name.appendChild(lastname)

        author.appendChild(name)

        book.appendChild(author)

        pubdate=doc.createElement("pubdate")

        pubdate.appendChild(doc.createTextNode(newbook["pubdate"]))

        book.appendChild(pubdate)

        booklist.appendChild(book)

        addBook({"id":"1001","title":"Anapple","firstname":"Peter","lastname":"Zhang","pubdate":"2012-1-12"})

        addBook({"id":"1002","title":"Love","firstname":"Mike","lastname":"Li","pubdate":"2012-1-10"})

        addBook({"id":"1003","title":"Steve.Jobs","firstname":"Tom","lastname":"Wang","pubdate":"2012-1-19"})

        addBook({"id":"1004","title":"HarryPotter","firstname":"Peter","lastname":"Chen","pubdate":"2012-11-11"})

        f=file("book.xml","w")

        doc.writexml(f)

        f.close()

        通過(guò)doc.toprettyxml(indent,newl,encoding)方法可以優(yōu)雅顯示xml文檔,但是要避免直接寫入文本,否則會(huì)給解析帶來(lái)麻煩,盡量使用自帶的writexml方法。

        生成的文檔內(nèi)容:

        Peter

        Zhang

        2012-1-12

        .................

        解析該xml文檔:

        '''

        Createdon2012-1-10

        Scanaxmldoc

        @author:xiaojay

        '''

        fromxml.domimportminidom,Node

        classbookscanner:

        def__init__(self,doc):

        forchildindoc.childNodes:

        ifchild.nodeType==Node.ELEMENT_NODE\

        andchild.tagName=="book":

        bookid=child.getAttribute("id")

        print"*"*20

        print"Bookid:",bookid

        self.handle_book(child)

        defhandle_book(self,node):

        forchildinnode.childNodes:

        ifchild.nodeType==Node.ELEMENT_NODE:

        ifchild.tagName=="title":

        print"Title:",self.getText(child.firstChild)

        ifchild.tagName=="author":

        self.handle_author(child)

        ifchild.tagName=="pubdate":

        print"Pubdate:",self.getText(child.firstChild)

        defgetText(self,node):

        ifnode.nodeType==Node.TEXT_NODE:

        returnnode.nodeValue

        else:return""

        defhandle_author(self,node):

        author=node.firstChild

        forchildinauthor.childNodes:

        ifchild.nodeType==Node.ELEMENT_NODE:

        ifchild.tagName=="firstname":

        print"Firstname:",self.getText(child.firstChild)

        ifchild.tagName=="lastname":

        print"Lastname:",self.getText(child.firstChild)

        doc=minidom.parse("book.xml")

        forchildindoc.childNodes:

        ifchild.nodeType==Node.COMMENT_NODE:

        print"Conment:",child.nodeValue

        ifchild.nodeType==Node.ELEMENT_NODE:

        bookscanner(child)

        以上內(nèi)容為大家介紹了使用python自帶的xml.dom創(chuàng)建和解析xml,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        列舉python常見(jiàn)的內(nèi)置函數(shù)

        abs()返回?cái)?shù)字的絕對(duì)值map根據(jù)函數(shù)對(duì)指定序列做映射map()函數(shù)接收兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是可迭代對(duì)象,map將傳入的函數(shù)依次作用到序列的每...詳情>>

        2023-11-07 17:02:46
        python內(nèi)置函數(shù):map、reduce、filter的用法和區(qū)別

        map:根據(jù)函數(shù)對(duì)指定序列做映射map參數(shù)接收兩個(gè)參數(shù):一個(gè)是函數(shù),一個(gè)是序列(可迭代對(duì)象)返回值Python2返回列表python3返回迭代器#例子:#abs()...詳情>>

        2023-11-07 16:59:10
        python虛擬環(huán)境工具virtualenv

        virtualenv是一個(gè)創(chuàng)建隔絕的Python環(huán)境的工具。virtualenv創(chuàng)建一個(gè)包含所有必要的可執(zhí)行文件的文件夾,用來(lái)使用Python工程所需的包。安裝pipins...詳情>>

        2023-11-07 16:30:22
        python函數(shù)調(diào)用和參數(shù)傳遞

        定義過(guò)函數(shù)后,就可以在后面程序中使用這一函數(shù)printsquare_sum(3,4)python通過(guò)位置,知道3對(duì)應(yīng)的是函數(shù)定義中的第一個(gè)參數(shù)a,4對(duì)應(yīng)第二個(gè)參數(shù)b...詳情>>

        2023-11-07 16:19:34
        python字節(jié)碼和機(jī)器碼的區(qū)別

        機(jī)器碼,學(xué)名機(jī)器語(yǔ)言指令,有時(shí)也被稱為原生碼,是電腦的CPU可直接解讀的數(shù)據(jù)。字節(jié)碼是一種中間狀態(tài)(中間碼)的二進(jìn)制代碼(文件)。需要直譯器...詳情>>

        2023-11-07 16:05:10
        革吉县| 广宗县| 珲春市| 广宁县| 海安县| 阜新市| 肇东市| 改则县| 通江县| 昌黎县| 紫阳县| 平谷区| 荣成市| 柞水县| 延川县| 石楼县| 普陀区| 定结县| 天气| 南木林县| 清水河县| 宜宾县| 南丰县| 集安市| 富宁县| 灵宝市| 土默特右旗| 六枝特区| 永春县| 泾源县| 九江市| 岐山县| 香港| 晋中市| 高碑店市| 大厂| 那曲县| 婺源县| 聂拉木县| 阜阳市| 沛县|