学python没多久,遇到一个解析xml的需求,边学边练,用的是ElementTree,感觉没有说的那么方便,也许E文不好,看漏api,root.findall()搞的象正则表达式,瞎了。希望知道的朋友告诉我
题目这样,比如有个xml:
<?xml version="1.0" encoding="UTF-8"?> <students> <student no="2009081097"> <name>Hongten</name> <gender>M</gender> <age>20</age> <score subject="math">97</score> <score subject="chinese">90</score> </student> <student no="2009081098"> <name>DuDu</name> <gender>W</gender> <age>21</age> <score subject="math">87</score> <score subject="chinese">96</score> </student> <student no="2009081099"> <name>Sum</name> <gender>M</gender> <age>19</age> <score subject="math">64</score> <score subject="chinese">98</score> </student> </students>
已知某个值是19,求拥有该值的节点的父节点的所有子节点,就是这么一块:
<name>Sum</name> <gender>M</gender> <age>19</age> <score subject="math">64</score> <score subject="chinese">98</score>
我的代码:
#coding=utf-8 import os import xml.etree.ElementTree as ET filepath = 'c:\\test\\a.xml' tree = ET.parse(filepath) root = tree.getroot() p_node = None r_node = [] def func(node): global p_node if len(node)>0: p_node = node for c in node: func(c) else: if node.text == '19':#值在这里在这里 r_node.append(p_node) if __name__ == '__main__': func(root) if not r_node: for n in r_node: print '-'*10 for c in n: print c.tag,c.text else: print 'not found'
输出:
---------- name Sum gender M age 19 score 64 score 98 [Finished in 0.1s]
先这样吧,交差!
相关推荐
Python自带的ElementTree保存xml时不会保留节点属性的原始顺序,会重新排序。 这里提供一个Monkey Patch使ElementTree保存xml时能够保留节点属性的原始顺序,附有sample。
python 使用elementtree模块解析 xml 文档里面是详细代码
主要介绍了Python3 xml.etree.ElementTree支持的XPath语法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了利用 Python ElementTree 生成 xml的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
1.引入库需要用到3个类,ElementTree,Element以及建立子类的包装类...2.读入并解析tree = ElementTree(file=xmlfile)root = tree.getroot()读入后,tree是ElementTree的类型,获取xml根结点使用getroot()方法; XML
以country.xml为例,内容如下: <?xml version=1.0?> <rank updated=yes>2 <year>2008 <gdppc>141100 <country name=Singapore>
主要介绍了Python中使用ElementTree解析XML示例,本文同时讲解了XML基本概念介绍、XML几种解析方法和ElementTree解析实例,需要的朋友可以参考下
python解析xml文件,python语言解析xml文件的常用的有两种方式: 通过MiniDom库解析xml文件 通过ElementTree库解析xml文件
python使用ElementTree类 处理XML 用法 实例
python xml.etree.ElementTree遍历xml所有节点 XML文件内容: 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 import xml.etree.ElementTree as ET #全局唯一标识 unique_id = 1 #遍历所有的节点
Python中使用ElementTree可以很方便的处理XML,但是产生的XML文件内容会合并在一行,难以看清楚。 如下格式: <root><aa>aatext<cc>cctext</cc></aa><bb>bbtext<dd>ddtext<ee>eetext</ee></dd></bb></root> 使用...
这是一个采用Python脚本自动解析XML格式并生成对应Qt的解析XML的代码, 让Qt完全解脱了编写解析的逻辑。
自己翻译的python的 xml.etree.ElementTree模块。这个模块向我们展示了python和XML交互的一个方法。
前言 最近因为工作的需要,在使用 Python 来发送 SOAP 请求以测试 Web Service 的性能,由于 SOAP 是基于 XML 的,故免不了需要使用 python ...对比其他 Python 处理 XML 的方案,xml.etree.ElementTree 模块(下文我们
python解析xml,字符串替换,正则表达式,可以参考