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生成器generator用法实例分析
Jun 04 Python
通过Python来使用七牛云存储的方法详解
Aug 07 Python
八大排序算法的Python实现
Jan 28 Python
Python解析excel文件存入sqlite数据库的方法
Nov 15 Python
python将txt文件读取为字典的示例
Dec 22 Python
Python基本socket通信控制操作示例
Jan 30 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
python装饰器三种装饰模式的简单分析
Sep 04 Python
Python调用JavaScript代码的方法
Oct 27 Python
python tkinter实现定时关机
Apr 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
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
php+mysql数据库查询实例
2015/01/21 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
万能的php分页类
2017/07/06 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
jquery.ui.draggable中文文档
2009/11/24 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
python 计算文件的md5值实例
2017/01/13 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
Python读写Excel表格的方法
2021/03/02 Python
大学生应聘推荐信范文
2013/11/19 职场文书
领导干部培训感言
2014/01/23 职场文书
人事助理自荐信
2014/02/02 职场文书
元旦寄语大全
2014/04/10 职场文书
门球健将观后感
2015/06/16 职场文书