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:条件控制语句即(if, if else , elseif , switch case) if语句不多说了,基本上大家都知道.if el ...
- R简易入门(一)
本文内容来源:https://www.dataquest.io/mission/126/introduction-to-r 本文数据来源:https://www.whitehouse.gov/21st ...
- PAT 字符串-02 删除字符串中的子串
/* 2 *PAT 字符串-02 删除字符串中的子串 3 *2015-08-09 4 作者:flx413 5 */ #include<stdio.h> #include<string ...
- Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...
- DRP中用到的JavaScript验证
在Drp中添加按钮的时候要验证用户输入的是否合法利用JavaScript就可以实现这个功能下面就是我的代码. <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- 详解C/C++预处理器
C/C++编译系统编译程序的过程为预处理.编译.链接.预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序.预处理器指令以#号开头标识,末尾不包含分号.预处理命令不是C/C++语 ...
- Windows 7 搭建 nodejs、npm、express 环境
准备工作: 下载nodejs (exe format)(http://nodejs.org/) 下载npm(zip format)(http://nodejs.org/dist/npm/) 开始安装 ...
- IIS WMI Provider
section contains information about the classes that are implemented by the IIS WMI provider in the M ...
- Android bluetooth low energy (ble) writeCharacteristic delay callback
I am implementing a application on Android using BLE Api (SDK 18), and I have a issue that the trans ...
- Careercup - Facebook面试题 - 5188884744896512
2014-05-02 07:18 题目链接 原题: boolean isBST(const Node* node) { // return true iff the tree with root 'n ...