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中操作文件之truncate()方法的使用教程
May 25 Python
详解Python3操作Mongodb简明易懂教程
May 25 Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
简单了解django索引的相关知识
Jul 17 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
python实现简单坦克大战
Mar 27 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
Python selenium爬取微博数据代码实例
May 22 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 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
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
js 深拷贝函数
2008/12/04 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
jquery延迟对象解析
2016/10/26 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python 字典访问的三种方法小结
2019/12/05 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
德国高尔夫商店:Par71.de
2020/11/29 全球购物
商务日语毕业生自荐信范文
2013/11/14 职场文书
机械电子工程专业推荐信范文
2013/11/20 职场文书
竞争上岗实施方案
2014/03/21 职场文书
公司经理任命书
2014/06/05 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
小学教育见习报告
2014/10/31 职场文书
杜甫草堂导游词
2015/02/03 职场文书
单方投资意向书
2015/05/11 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL