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中使用lambda高效操作列表的教程
Apr 24 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
Python实现元素等待代码实例
Nov 11 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
python 实现mysql自动增删分区的方法
Apr 01 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限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
python/golang 删除链表中的元素
2020/09/14 Python
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
初中生学习生活的自我评价
2013/11/20 职场文书
自主招生自荐信格式
2013/12/03 职场文书
租赁协议书范本
2014/04/22 职场文书
产品开发计划书
2014/04/27 职场文书
七一建党日演讲稿
2014/09/05 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
golang生成vcf通讯录格式文件详情
2022/03/25 Golang