香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

python解析xml文件操作实例


时间:2021-11-09 10:24 作者:admin610456


本文实例讲述了python/' target='_blank'>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) 

希望本文所述对大家的Python程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)