使用python3.4解析xml文件(sax、dom、etree)

调用sax模块处理xml文件。

#重载了三个方法#处理xml,主要就是写自己的事件处理类from xml.sax import *class DengHandler(ContentHandler):def startDocument(self):print("—-开始解析xml文档—-")def endDocument(self):print("—-xml文档解析完毕—-")def startElement(self,name,attrs):if name == "author":print("名字:",attrs['name']," 日期:",attrs["birth"])parse("deng.xml",DengHandler())

deng.xml

<?xml version = "1.0" encoding = "utf-8"?><author name = "dengjingdong" birth = "19920517"></author></people>调用dom模块中的minidom处理xml文件。from xml.dom.minidom import *#scannode函数打印xml文件的结构def scannode(doc,level = 0):ret = doc.__class__.__name__if doc.nodeType == Node.ELEMENT_NODE:ret += ",标签:" + doc.tagNameprint(" "*4*level,ret)if doc.hasChildNodes:for child in doc.childNodes:scannode(child,level+1)#—-scannode—–xin = parse("book.xml")print(xin)scannode(xin)#—-scannode—–x = parse("domtest.xml")nx = x.getElementsByTagName("author")print(nx[0].getAttribute("birth"))print(nx[0].childNodes[0].data)print(nx[1].getAttribute("birth"))print(nx[1].childNodes[0].data)

book.xml<?xml version = "1.0" encoding = "utf-8" ?><book><title>the book title</title><author><name>jingdong</name><boy>true</boy></author><chapter number = "1"><title> first chapter </title><para>I love python.</para></chapter></book>domtest.xml<?xml version = "1.0" encoding = "utf-8" ?><people><author name = "dengjingdong" birth = "1990517">dongdong</author><author name = "wushengnan" birth = "19920520">nannan</author></people>

调用etree模块中的ElementTree生成所需的xml文件。

import xml.etree.ElementTree as etx = et.Element("name")x.text = "dengjingdong"x.set("boy","true")sx = et.tostring(x)print(sx)

,不愧是春城,花香四季,品种繁多。

使用python3.4解析xml文件(sax、dom、etree)

相关文章:

你感兴趣的文章:

标签云: