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

 更新时间:2015年05月05日 10:13:22   作者:鸪斑兔  
这篇文章主要介绍了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程序设计有所帮助。

相关文章

  • python调用可执行文件.exe的2种实现方法

    python调用可执行文件.exe的2种实现方法

    Python是一种流行的编程语言,可以轻松地通过脚本调用各种应用程序,本文就详细的介绍了python调用可执行文件.exe的2种实现方法,感兴趣的可以了解一下
    2023-08-08
  • Python执行时间的几种计算方法

    Python执行时间的几种计算方法

    这篇文章主要介绍了Python执行时间的几种计算方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python3 main函数使用sys.argv传入多个参数的实现

    Python3 main函数使用sys.argv传入多个参数的实现

    今天小编就为大家分享一篇Python3 main函数使用sys.argv传入多个参数的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • TensorFlow2.0使用keras训练模型的实现

    TensorFlow2.0使用keras训练模型的实现

    这篇文章主要介绍了TensorFlow2.0使用keras训练模型的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python模块MarkupPy与自定义html报告详解

    Python模块MarkupPy与自定义html报告详解

    MarkupPy是Python模块用于生成HTML和XML格式的字符串,它的主要作用是提供了一种比原生HTML/XML更加易读和易写的编写方式,通过Python代码来生成HTML或XML代码,这篇文章主要介绍了Python模块MarkupPy&自定义html报告的相关知识,需要的朋友可以参考下
    2023-07-07
  • python实现图片变亮或者变暗的方法

    python实现图片变亮或者变暗的方法

    这篇文章主要介绍了python实现图片变亮或者变暗的方法,涉及Python中Image模块操作图片的相关技巧,需要的朋友可以参考下
    2015-06-06
  • Python利用zhdate模块实现农历日期处理

    Python利用zhdate模块实现农历日期处理

    zhdate模块统计从1900年到2100年的农历月份数据代码,支持农历和公历之间的转化,并且支持日期差额运算。本文将利用这一模块实现农历日期的处理,需要的可以参考一下
    2022-03-03
  • Python collections模块使用方法详解

    Python collections模块使用方法详解

    这篇文章主要介绍了Python collections模块使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 基于Python实现电影售票系统

    基于Python实现电影售票系统

    这篇文章主要介绍了通过Python实现一个简单的电影售票系统,文中的示例代码对我们学习Python有一定的帮助,感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • ubuntu系统下 python链接mysql数据库的方法

    ubuntu系统下 python链接mysql数据库的方法

    这篇文章主要介绍了ubuntu系统下 python链接mysql数据库的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01

最新评论