WEB开发网
开发学院软件开发Python 使用minidom解析xml 阅读

使用minidom解析xml

 2010-09-22 11:24:24 来源:WEB开发网   
核心提示:最近在研究python解析xml,python从来不缺解析xml的库,使用minidom解析xml,我分析了一下,综合来看有两个非常合适,一个是大名鼎鼎很低调的xml.dom,一个是强大而且高效的lxml

最近在研究python解析xml。python从来不缺解析xml的库,我分析了一下,综合来看有两个非常合适,一个是大名鼎鼎很低调的xml.dom,一个是强大而且高效的lxml。先来学习minidom的。

这个类实现的readNodes作用是读取节点值和相应的属性

readElementByName是根据输入的元素名字来读取其子元素的结点属性

不是很难理解

 1 #!/usr/bin/env python   
 2 #coding=utf-8   
 3 from xml.dom import minidom   
 4   
 5 class Xml_dom():   
 6     def readNodes(self,domElement):   
 7         for nodes in domElement.childNodes:   
 8             if nodes.nodeType == 1:   
 9                 print nodes.nodeName+'====================='  
10                 for keys in nodes.attributes.keys():   
11                     print nodes.attributes[keys].name+'='+nodes.attributes[keys].value   
12                     if len(nodes.childNodes)==1:   
13                         print nodes.nodeName+':'+nodes.childNodes[0].nodeValue   
14                     else:   
15                         self.readNodes(nodes)   
16     def readElementByName(self,elementList):   
17         for elements in elementList:   
18             if elements.nodeType == 1:   
19                 print elements.nodeName+'>>>>>>>>>>>>>>>>>>>>>>>'  
20                 for keys in elements.attributes.keys():   
21                     print elements.attributes[keys].name+'='+elements.attributes[keys].value   
22             if len(elements.childNodes) == 1:   
23                 print elements.nodeName+':'+elements.childNodes[0].nodeValue   
24             else:   
25                 self.readElementByName(elements.childNodes)   
26     def __init__(self,filename,elename):   
27         self.dom = minidom.parse(filename)   
28         self.root = self.dom.documentElement   
29         print '=========xml_dom==============n'  
30         self.readNodes(self.root)   
31         print '=========end===============n'  
32         print '>>>>>>>>>xml_dom>>>>>>>>>>n'  
33         el = self.dom.getElementsByTagName(elename)   
34         self.readElementByName(el)   
35         print ">>>>>>>>>end>>>>>>>>>>>>"  
36            
37 if __name__=='__main__':   
38 #    a = Xml_dom('rule_sqlInj.xml','configs')   
39     a = Xml_dom('waf_sqlrule.xml','prot') 

1 2  下一页

Tags:使用 minidom 解析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接