国产探花免费观看_亚洲丰满少妇自慰呻吟_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)             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东安县| 玉田县| 博客| 临泉县| 平安县| 常州市| 陇西县| 赫章县| 灵宝市| 安图县| 峨山| 公安县| 绥芬河市| 高淳县| 龙井市| 德州市| 武冈市| 伊吾县| 石阡县| 翁牛特旗| 九寨沟县| 伊通| 出国| 桃园市| 饶阳县| 方山县| 乡宁县| 如皋市| 景洪市| 平武县| 新乡市| 灌云县| 潢川县| 晋城| 木兰县| 安义县| 襄城县| 巴林左旗| 贡嘎县| 昌邑市| 行唐县|