网络编程
位置:首页>> 网络编程>> Python编程>> Python获取任意xml节点值的方法

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

作者:鸪斑兔  发布时间:2023-03-09 01:40:07 

标签: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程序设计有所帮助。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com