<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的更多相关文章

  1. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

  2. python解析xml模块封装代码

    在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...

  3. python解析xml之lxml

    虽然python解析xml的库很多,但是,由于lxml在底层是用C语言实现的,所以lxml在速度上有明显优势.除了速度上的优势,lxml在使用方面,易用性也非常好.这里将以下面的xml数据为例,介绍l ...

  4. python解析xml

    python解析xml import xml.dom.minidom as minidom dom = minidom.parse("aa.xml") root = dom.get ...

  5. python 解析xml

    在工作中很多时候都要用到xml,使用这个时候难免会设计到解析他,然后就研究了一下python解析xml问题,看了很多东西,python有很多解析xml的包,但是也折腾我好一段时间,最后选择了这个方法. ...

  6. Python 解析 XML 文件生成 HTML

    XML文件result.xml,内容如下: <ccm> <metric> <complexity>1</complexity> <unit> ...

  7. Python 解析XML实例(xml.sax)

    已知movies.xml <collection shelf="New Arrivals"> <movie title="Enemy Behind&qu ...

  8. 横向对比分析Python解析XML的四种方式

    横向对比分析Python解析XML的四种方式 在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜 ...

  9. PYTHON解析XML的多种方式效率对比实测

    在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜索后发现,目前应用比较广泛,且效率相对较高的E ...

  10. python 解析xml 文件: Element Tree 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

随机推荐

  1. ORACLE 基础知识积累

    创建ORACLE 数据库,首先用Sys账号角色为dba进入数据库然后,然后根据创建数据库的表空间,然后创建角色,创建完角色后将表空间的权限授予角色. SQL语句如下: create temporary ...

  2. 一个统计目录文件大小的php函数

    早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文件大小,我了个去,动手吧,还好有点小基础,一会就完工了,哈哈.代码在下面咯. <? /** 统计目录文件大小的函数 @author  ...

  3. Android关于buildToolVersion与CompileSdkVersion的区别

    StackOverFlow中对这个问题进行了详细的讨论:http://stackoverflow.com/questions/24521017/android-gradle-buildtoolsver ...

  4. MemProof教程

    简介 MemProof(内存清道夫)是AutomatedQA出品的一款非常不错的检测内存泄漏和资源泄漏的免费调试工具,适合于WIN32平台下使用DELPHI/C++ BUILDER开发的应用程序. 利 ...

  5. google查询技巧

    技巧一:使用正确的方法 无论你是使用一个简单或是高级的Google搜索,在此都存在你应该使用的某种可靠的方法.遵循适当的方法你就能获得非常准确的结果:要是忽略这条建议的话,你也许就会看到大量不相关的结 ...

  6. SQL中的自定义函数Function

    先给出一个链接吧,别人写的:http://www.cnblogs.com/diony/archive/2010/12/17/1909014.html 总结得很全面,感谢感谢!自己练习了一下后面的例子, ...

  7. MySQL 库大小、表大小、索引大小查询命令

    1.进去指定schema 数据库(存放了其他的数据库的信息)     mysql> use information_schema; 2.查询所有数据的大小      mysql> sele ...

  8. nginx学习之一

    http://tengine.taobao.org/book/chapter_02.html

  9. 日志文件切割服务logrotate配置及crontab定时任务的使用

    1.下载logrotate 在Fedora和CentOS安装 yum install logrotate crontabs Debian和Ubuntu上 apt-get install logrota ...

  10. Notes of the scrum meeting(10/30)

    meeting time:9:30~11:30p.m.,October 29th,2013 meeting place:20公寓楼前 attendees: 顾育豪                    ...