Python解析xml文件操作的例子

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
Python解析xml文件操作实例,操作XML文件的常见技巧。

xml文件内容:

<br />sample xml thing <br />

ma

xiaoju

Springs Widgets, Inc.

<br />First <br />

I think widgets are greate.You should buy lots of them forom

Spirngy Widgts, Inc

python代码:

from xml.dom import minidom, Node
import re, textwrap ## www.jbxue.com

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解析xml文档实例  http://www.linuxidc.com/Linux/2012-02/54760.htm

《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 语言的发展简史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的详细介绍请点这里
Python 的下载地址请点这里

未经允许不得转载:演道网 » Python解析xml文件操作的例子

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册