您好,欢迎来到尚佳旅游分享网。
搜索
您的当前位置:首页Python获取任意xml节点值的方法

Python获取任意xml节点值的方法

来源:尚佳旅游分享网

本文实例讲述了Python获取任意xml节点值的方法。分享给大家供大家参考。具体实现方法如下:

# -*- coding: utf-8 -*-
import xml.dom.minidom
ELEMENT_NODE = xml.dom.Node.ELEMENT_NODE
class SimpleXmlGetter(object):
 def __init__(self, data):
 if type(data) == str:
 self.root = xml.dom.minidom.parse(data)
 else:
 self.root = data
 def __getattr__(self, name): #support . operation
 if name == 'data':
 return self.root.firstChild.data
 for c in self.root.childNodes:
 if c.nodeType == ELEMENT_NODE and c.tagName == name:
 return SimpleXmlGetter(c)
 def __getitem__(self, index): #support [] operation
 eNodes = [ e for e in self.root.parentNode.childNodes
 if e.nodeType == ELEMENT_NODE and e.tagName == self.root.tagName]
 return SimpleXmlGetter(eNodes[index])
 def __call__(self, *args, **kwargs): #support () openration, for query conditions
 for e in self.root.parentNode.childNodes:
 if e.nodeType == ELEMENT_NODE:
 for key in kwargs.keys():
 if e.getAttribute(key) != kwargs[key]:
 break
 else:
 return SimpleXmlGetter(e)
if __name__ == "__main__":
 x = SimpleXmlGetter("sysd.xml")
 print x.sysd.sysagent.param[2].data
 print x.sysd.sysagent.param(name="querytimeout", type="second").data

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

Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务