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


Posted in Python onMay 05, 2015

本文实例讲述了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 相关文章推荐
python实现进程间通信简单实例
Jul 23 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
python reverse反转部分数组的实例
Dec 13 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
Django实现内容缓存实例方法
Jun 30 Python
Python实现方便使用的级联进度信息实例
May 05 #Python
Python封装shell命令实例分析
May 05 #Python
用Python中的字典来处理索引统计的方法
May 05 #Python
python递归计算N!的方法
May 05 #Python
浅谈Python中数据解析
May 05 #Python
探究Python多进程编程下线程之间变量的共享问题
May 05 #Python
浅谈Python中的数据类型
May 05 #Python
You might like
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
Python匹配中文的正则表达式
2016/05/11 Python
浅谈python可视化包Bokeh
2018/02/07 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
精彩的英文自荐信
2014/01/30 职场文书
迟到早退检讨书
2014/02/10 职场文书
技校毕业生自荐书
2014/05/23 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
golang中的空接口使用详解
2021/03/30 Python