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="[email protected]{client}"
      changedBy="[email protected]{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 方式解析

 1 from xml.etree import ElementTree as et
 2
 3 def parseXml(filename=".\\resource\\test.xml"}):
 4     result_list = []
 5     tree = et.parse(filename)
 6     root = tree.getroot()
 7
 8     elements = root.findall("task")
 9     for el in elements:
10         adict = {}
11         attr = el.attrib # attributes of task node
12         adict.update(attr) # attr is a dict, put the key-values of attr into adict
13         matches = el.findall(‘match‘)
14         for m in matches:
15             key = m.attrib.get(‘property‘)
16             value = m.attrib.get(‘value‘)
17             adict[key] = value
18         props = el.findall(‘property‘)
19         for p in props:
20             key =  p.attrib.get(‘name‘)
21             value = p.attrib.get(‘value‘)
22             adict[key] = value
23         if is_target(adict, filter):
24             result_list.append(adict)
25     return result_list

使用 minidom 解析

 1 from xml.dom.minidom import parse
 2
 3 def load_task_list(filename):
 4     xml_dom = parse(filename)
 5     node_tasklist = xml_dom.documentElement
 6
 7     for node_task in node_tasklist.getElementsByTagName(‘task‘):
 8         for (attr_name, attr_value) in node_task.attributes.items():
 9             print attr_name, attr_value # attributes of task node
10         for node in node_task.childNodes:
11             if node.nodeType == node.ELEMENT_NODE:
12                 if node.nodeName == ‘match‘:
13                     prop_name = node.getAttribute(‘property‘)
14                     prop_value = node.getAttribute(‘value‘)
15                     print ‘match: %s:%s‘%(prop_name, prop_value)
16                 elif node.nodeName == ‘property‘:
17                     prop_name = node.getAttribute(‘name‘)
18                     prop_value = node.getAttribute(‘value‘)
19                     print ‘property: %s:%s‘%(prop_name, prop_value)
20
21 load_task_list(r‘.\resource\test.xml‘)

  

  

时间: 2024-11-14 00:58:33

python 解析 xml的相关文章

python解析xml文件操作的例子

python解析xml文件操作实例,操作XML文件的常见技巧. xml文件内容: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </first> <last>

python 解析XML文件

比较高效的python 解析XML文件 参考 http://codingpy.com/article/parsing-xml-using-python/ try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET import time def parse_poi_by_elementTree(filepath): t0 = time.time() tree = E

python解析xml之lxml

虽然python解析xml的库很多,但是,由于lxml在底层是用C语言实现的,所以lxml在速度上有明显优势.除了速度上的优势,lxml在使用方面,易用性也非常好.这里将以下面的xml数据为例,介绍lxml的简单使用. [html]?view plain?copy ? 例子:dblp.xml(dblp数据的片段)?? <?xml?version='1.0'?encoding='utf-8'?>???? <dblp>?? ???????<article?mdate="

Python解析XML文件

python对XML的解析 常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同. python有三种方法解析XML,SAX,DOM,以及ElementTree: 1.SAX (simple API for XML ) pyhton 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件. 2.DOM(Document Object Model) 将XML数据在内存中解析成一个树,通过

python解析xml并按照其结构输出

平时写代码需要将一个xml文件按照其结构,将每个节点列出来,如: <root> <person age="18"> <name>hzj</name> <sex>man</sex> </person> <person age="19" des="hello"> <name>kiki</name> <sex>female

Python解析xml文件遇到的编码解析的问题

使用python对xml文件进行解析的时候,如果xml文件的头文件是utf-8格式的编码,那么解析是ok的,但如果是其他格式将会出现如下异常: xml.parsers.expat.ExpatError: unknown encoding 因此,为了保证程序的正常运行,我们需要对读取的文件进行编码处理. 1.首先将读取的字符从原来的编码解析,并编码成utf-8: 2.修改xml的encoding: 代码如下: import sys import os import datetime import

python解析XML笔记(etree)

近期梳理Weblogic数据源,数据源较多,但是每一个数据源在weblogic中是xml方式存在,所以想到批量解析xml,把数据放到数据库后来解决. 需要的数据源信息: WEBLOGIC_HOSTJDBC_NAMEJNDI_NAMEDB_ALIASDB_NAMEDB_HOSTINST_PORTDB_USERTARGETURLDRIVER_TYPECAPACITY 数据源xml格式: <?xml version='1.0' encoding='UTF-8'?> <jdbc-data-sou

python 解析XML xml.dom

一 .xml.dom 解析XML的API描述 minidom.parse(filename) 加载读取XML文件 doc.documentElement 获取XML文档对象 node.getAttribute(AttributeName) 获取XML节点属性值 node.getElementsByTagName(TagName) 获取XML节点对象集合 node.childNodes 返回子节点列表. node.childNodes[index].nodeValue 获取XML节点值 node.

【python小随笔】python解析xml格式字符串与xml文件

1:解析xml---文件 from xml.dom.minidom import parse import xml.dom.minidom # 使用minidom解析器打开XML文档 DOMTree = xml.dom.minidom.parse("./test.xml") print(DOMTree) collection = DOMTree.documentElement # 集合某个标签 VariationChilds = collection.getElementsByTagN