`
pjwqq
  • 浏览: 81533 次
社区版块
存档分类
最新评论

python ElementTree解析xml小记

阅读更多

   学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]

    先这样吧,交差!

1
1
分享到:
评论
1 楼 longhua2003 2015-11-26  

相关推荐

    解析XML文件,使用ElementTree模块,并根据流程图设计合适的数据结构保存解析结果-使用Python ElementTree模块解析XML文件并设计数据结构-含源代码及解释

    内容概要:本文详细介绍了如何使用Python的ElementTree模块解析XML文件,并设计合适的数据结构来保存解析结果。具体步骤包括导入ElementTree模块、解析XML文件、设计数据结构、遍历XML元素、提取信息并保存到数据...

    python使用ElementTree类 处理XML

    ElementTree 模块是 Python 标准库的一部分,可以用来解析和生成 XML 文档。在 cette 小节中,我们将学习如何使用 ElementTree 模块处理 XML 文档。 ElementTree 模块的主要功能是将 XML 文档解析成树形结构,使得...

    Python如何使用ElementTree解析xml

    以country.xml为例,内容如下: &lt;?xml version=1.0?&gt; &lt;rank updated=yes&gt;2 &lt;year&gt;2008 &lt;gdppc&gt;141100 &lt;country name=Singapore&gt;

    Python中使用ElementTree解析XML示例

    ### Python中使用ElementTree解析XML知识点详解 #### XML基本概念介绍 XML,全称为Extensible Markup Language(可扩展标记语言),是一种用于传输和存储数据的标准格式。与HTML类似,XML同样使用标签来组织数据,...

    python xml.etree.ElementTree遍历xml所有节点实例详解

    python xml.etree.ElementTree遍历xml所有节点 XML文件内容: 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 import xml.etree.ElementTree as ET #全局唯一标识 unique_id = 1 #遍历所有的节点

    python解析xml

    Python中有两个主要的XML解析库:ElementTree和lxml。ElementTree是Python标准库的一部分,适合轻量级和快速的XML处理;lxml则是一个更强大的库,它结合了ElementTree和C的libxml2/libxslt库,提供了更快的性能和更...

    Python如何对XML 解析

    在Python中,处理XML有多种方式,主要包括SAX(Simple API for XML)和DOM(Document Object Model)两种主流的解析接口,以及Python标准库中的ElementTree模块。 1. **SAX解析**: SAX是一种基于事件驱动的解析...

    Python使用ElementTree美化XML格式的操作

    ### Python使用ElementTree美化XML格式的操作 #### 引言 在进行XML文件处理时,保持良好的格式对于提高可读性和维护性至关重要。Python内置的`xml.etree.ElementTree`库虽然强大,但在处理XML文件时默认输出的XML...

    使用Python的`xml.etree.ElementTree`模块处理XML数据

    Python提供了一个内置的模块xml.etree.ElementTree(简称ET),它是一个简单而强大的工具,用于解析和创建XML数据。本文将详细介绍如何使用这个模块来处理XML文件,包括解析、创建、修改和保存XML数据。 xml.etree....

    基于Python实现的自动化生成XML解析类

    而Python作为一门强大且灵活的编程语言,提供了多种库来处理XML数据,如ElementTree、lxml等。本项目是基于Python实现的自动化XML解析类,它简化了Qt应用中处理XML的流程,避免了手动编写解析逻辑的繁琐工作。 首先...

    Node.JS XML 解析 node-elementtree.zip

    `node-elementtree` 是对 Python 的 `ElementTree` 库的一个实现,它为 Node.JS 提供了方便的 XML 解析和操作功能。这个库的设计理念是简单易用,同时也保留了 XML 文档的树形结构,使得处理复杂的 XML 文档变得直观...

    Python利用ElementTree模块处理XML的方法详解

    本文将详细介绍如何使用Python中的ElementTree模块来进行XML的解析与创建。 #### ElementTree模块简介 `xml.etree.ElementTree`是Python内置的标准库之一,用于处理XML文档。它采用了一种轻量级的对象模型,主要...

    python pyqt5 使用QTreeWidget 和 xml模块 将 xml文件信息 自动读入并展示到树形控件上的示例程序

    程序文件主要包括两部分功能:一是使用python自带的xml.etree.ElementTree类读入和解析xml树形信息文件;二是使用 PyQt5 的 QTreeWidget 构建树,并将信息展示到Tree 的对应节点Item上。 初次接触xml和QTreeWidget...

    python xml文件解析,正则表达式字符串替换

    python解析xml,字符串替换,正则表达式,可以参考

    python_XML-6-17.rar_python 文件_python xml_python读写xml_python读写xm

    首先,我们需要导入`xml.etree.ElementTree`模块,它是Python的标准库之一,提供了XML处理的API。这个模块包含了两个主要的类:`ElementTree`和`Element`。`ElementTree`表示整个XML文档,而`Element`则表示XML文档...

    python脚本用于xml解析的源代码

    Python提供了几个库来处理XML,最常用的是`xml.etree.ElementTree`。这个库提供了一种高效且易于使用的API,可以方便地解析、创建和修改XML文档。 在`src`目录中,可能包含的是实现XML解析的Python源代码文件。这些...

    用Python解析XML文件的软件实现.zip

    在Python中,常用的XML解析库有`xml.dom.minidom`、`ElementTree`(包括`xml.etree.ElementTree`和`cElementTree`)以及`lxml`。下面我们将逐一介绍这些库的使用方法。 1. **xml.dom.minidom** `xml.dom.minidom`...

Global site tag (gtag.js) - Google Analytics