国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python解析xml文件操作實例

2020-02-23 06:04:18
字體:
來源:轉載
供稿:網友

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

xml文件內容如下:

<?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)             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦县| 赤水市| 遂溪县| 民乐县| 玉山县| 吕梁市| 廊坊市| 广平县| 西乌珠穆沁旗| 临高县| 遵化市| 九江市| 伊吾县| 垣曲县| 柞水县| 平顶山市| 鄄城县| 将乐县| 迁安市| 榆社县| 雷州市| 都匀市| 通辽市| 武川县| 孝义市| 新竹县| 清镇市| 工布江达县| 文山县| 两当县| 芮城县| 纳雍县| 那坡县| 新郑市| 扎鲁特旗| 清水河县| 名山县| 靖边县| 尖扎县| 东山县| 五莲县|