python 解析 xml
<taskList nextId="62292">
<task module="reliability"
owner="vprovodi"
id="59074"
status="error"
result="XFL is OK;init OK;Tests: 17, Expected failures: 1, Unexpected: 1, Actual total count is OK: 17 >= 15(unmatched!);adb OK; Crashlogs: 0; Tombstones: 1; Sigs: 2+2+0+0; Throttlings: 0+0+0+0; Device errors: 0"
addedBy="muxiaofx@muxiaofx-desk{client}"
changedBy="muxiaofx@muxiaofx-desk{client}"
runningBy="lab_labrqabj"
runningOn="host007-agent11"
addedTime="1410503955947"
startTime="1410581427467"
finishTime="1410591199376"
>
<match property="android.build.origin" value="ABT"/>
<match property="android.build.target" value="KK"/>
<match property="android.build.branch" value="art-opt"/>
<match property="android.build.date" value="WW36"/>
<match property="android.build.type" value="userdebug"/>
<match property="android.device.type" value="T100TA"/>
<match property="agent.group" value="art-opt"/>
<property name="vm.backend" value="bronze"/>
<property name="task.group" value="weekly_WW36_ABT_art-opt_bronze_T100TA"/>
<property name="vm.mode" value="art"/>
<property name="task.tests" value="zip_vm"/>
</task>
</taskList>
使用python 独有etree 方式解析
from xml.etree import ElementTree as et def parseXml(filename=".\\resource\\test.xml"}):
result_list = []
tree = et.parse(filename)
root = tree.getroot() elements = root.findall("task")
for el in elements:
adict = {}
attr = el.attrib # attributes of task node
adict.update(attr) # attr is a dict, put the key-values of attr into adict
matches = el.findall('match')
for m in matches:
key = m.attrib.get('property')
value = m.attrib.get('value')
adict[key] = value
props = el.findall('property')
for p in props:
key = p.attrib.get('name')
value = p.attrib.get('value')
adict[key] = value
if is_target(adict, filter):
result_list.append(adict)
return result_list
使用 minidom 解析
from xml.dom.minidom import parse def load_task_list(filename):
xml_dom = parse(filename)
node_tasklist = xml_dom.documentElement for node_task in node_tasklist.getElementsByTagName('task'):
for (attr_name, attr_value) in node_task.attributes.items():
print attr_name, attr_value # attributes of task node
for node in node_task.childNodes:
if node.nodeType == node.ELEMENT_NODE:
if node.nodeName == 'match':
prop_name = node.getAttribute('property')
prop_value = node.getAttribute('value')
print 'match: %s:%s'%(prop_name, prop_value)
elif node.nodeName == 'property':
prop_name = node.getAttribute('name')
prop_value = node.getAttribute('value')
print 'property: %s:%s'%(prop_name, prop_value) load_task_list(r'.\resource\test.xml')
python 解析 xml的更多相关文章
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- python解析xml模块封装代码
在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...
- python解析xml之lxml
虽然python解析xml的库很多,但是,由于lxml在底层是用C语言实现的,所以lxml在速度上有明显优势.除了速度上的优势,lxml在使用方面,易用性也非常好.这里将以下面的xml数据为例,介绍l ...
- python解析xml
python解析xml import xml.dom.minidom as minidom dom = minidom.parse("aa.xml") root = dom.get ...
- python 解析xml
在工作中很多时候都要用到xml,使用这个时候难免会设计到解析他,然后就研究了一下python解析xml问题,看了很多东西,python有很多解析xml的包,但是也折腾我好一段时间,最后选择了这个方法. ...
- Python 解析 XML 文件生成 HTML
XML文件result.xml,内容如下: <ccm> <metric> <complexity>1</complexity> <unit> ...
- Python 解析XML实例(xml.sax)
已知movies.xml <collection shelf="New Arrivals"> <movie title="Enemy Behind&qu ...
- 横向对比分析Python解析XML的四种方式
横向对比分析Python解析XML的四种方式 在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜 ...
- PYTHON解析XML的多种方式效率对比实测
在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜索后发现,目前应用比较广泛,且效率相对较高的E ...
- python 解析xml 文件: Element Tree 方式
环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...
随机推荐
- php错误收集
1.Notice: Undefined offset: 1 in F:\www\my\test.php on line 39,原因offset:接下去的数字是出错的数组下标,一般是超出了数组的取值范围 ...
- Oracle 10g 数据文件的第一个数据块结构
一.数据文件的第一个数据块结构kcvfh BBED> set file 1 FILE# 1 BBED> set block 1 BLOCK# 1 --查看第一个数据块的整体结构 BBED& ...
- 在Centos7上安装漏洞扫描软件Nessus
本文摘要:简单叙述了在Centos7上安装Nessus扫描器的过程 Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,Nessus的用户界面是基于Web界面来访问Nessus漏洞扫描器 ...
- Python脚本控制的WebDriver 常用操作 <二十六> 上传文件
测试用例场景 上传文件的方法是找到上传文件的对象,通常是的对象.然后直接往这个对象send_keys,传入需要上传文件的正确路径.绝对路径和相对路径都可以,但是上传的文件必须存在,否则会报错. Pyt ...
- Ubuntu12.10编译openwrt遇到的错误
由于Openwrt有很多工具是要先编译的,在Ubuntu12.10平台下编译openwrt时就遇到了下面这样的错误:elf.cpp: In static member function 'static ...
- 银行HR:寒门再难出贵子
银行HR:寒门再难出贵子来源:金融行业网 2013 年 8 月 6 日 来源:天涯社区 作者:永乐大帝二世 本文是一位银行的HR写的,他工作了10年,接待了一群到银行实习的实习生,然后观察他们发生的好 ...
- libcurl
一.LibCurl基本编程框架 二.一些基本的函数 三.curl_easy_setopt函数部分选项介绍 四.curl_easy_perform 函数说明(error 状态码) 五.libcurl使用 ...
- 从零开始学ios开发(九):Swapping Views
这篇的内容是切换Views,也是上一篇中提到的第三种当iphone发生旋转后改变布局的方式,先回顾一下上一篇中提到的三种方式 1.使用Autosizing 2.写code 3.重新弄个View,替换原 ...
- Converting Storyboard from iPhone to iPad
I found out a kind of solution: Duplicate your iPhone-Storyboard and rename it MainStoryboard_iPad.s ...
- php Linux安装
参考地址:http://www.cnblogs.com/lianyue/p/3936728.html