学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文件,并设计合适的数据结构来保存解析结果。具体步骤包括导入ElementTree模块、解析XML文件、设计数据结构、遍历XML元素、提取信息并保存到数据...
Python3的xml.etree.ElementTree模块提供了一个XML处理...了解并熟练运用XPath与Python3的xml.etree.ElementTree模块相结合,可以有效地解析和操作XML数据,尤其在处理复杂XML结构时,能够提高代码的简洁性和可读性。
ElementTree 模块是 Python 标准库的一部分,可以用来解析和生成 XML 文档。在 cette 小节中,我们将学习如何使用 ElementTree 模块处理 XML 文档。 ElementTree 模块的主要功能是将 XML 文档解析成树形结构,使得...
`ElementTree`也是Python标准库的一部分,提供了一种更简洁的方式来解析和创建XML文档。 ##### 安装与导入 同样地,`ElementTree`是标准库的一部分,无需额外安装。 ```python import xml.etree.ElementTree as ...
Python中使用ElementTree可以很方便的处理XML,但是产生的XML文件内容会合并在一行,难以看清楚。 如下格式: <root><aa>aatext<cc>cctext</cc></aa><bb>bbtext<dd>ddtext<ee>eetext</ee></dd></bb></root> 使用...
### Python中使用ElementTree解析XML知识点详解 #### XML基本概念介绍 XML,全称为Extensible Markup Language(可扩展标记语言),是一种用于传输和存储数据的标准格式。与HTML类似,XML同样使用标签来组织数据,...
### Python 使用 `xml.etree.ElementTree` 遍历 XML 所有节点的详细解析 在本篇文章中,我们将深入探讨如何使用 Python 的内置库 `xml.etree.ElementTree` 来遍历 XML 文件中的所有节点,并提取所需的信息。通过一...
在Python中,处理XML有多种方式,主要包括SAX(Simple API for XML)和DOM(Document Object Model)两种主流的解析接口,以及Python标准库中的ElementTree模块。 1. **SAX解析**: SAX是一种基于事件驱动的解析...
Python提供了一个内置的模块xml.etree.ElementTree(简称ET),它是一个简单而强大的工具,用于解析和创建XML数据。本文将详细介绍如何使用这个模块来处理XML文件,包括解析、创建、修改和保存XML数据。 xml.etree....
而Python作为一门强大且灵活的编程语言,提供了多种库来处理XML数据,如ElementTree、lxml等。本项目是基于Python实现的自动化XML解析类,它简化了Qt应用中处理XML的流程,避免了手动编写解析逻辑的繁琐工作。 首先...
1.引入库需要用到3个类,ElementTree,Element以及建立子类的包装类...2.读入并解析tree = ElementTree(file=xmlfile)root = tree.getroot()读入后,tree是ElementTree的类型,获取xml根结点使用getroot()方法; XML
`node-elementtree` 是对 Python 的 `ElementTree` 库的一个实现,它为 Node.JS 提供了方便的 XML 解析和操作功能。这个库的设计理念是简单易用,同时也保留了 XML 文档的树形结构,使得处理复杂的 XML 文档变得直观...
本文将详细介绍如何使用Python中的ElementTree模块来进行XML的解析与创建。 #### ElementTree模块简介 `xml.etree.ElementTree`是Python内置的标准库之一,用于处理XML文档。它采用了一种轻量级的对象模型,主要...
程序文件主要包括两部分功能:一是使用python自带的xml.etree.ElementTree类读入和解析xml树形信息文件;二是使用 PyQt5 的 QTreeWidget 构建树,并将信息展示到Tree 的对应节点Item上。 初次接触xml和QTreeWidget...
python解析xml,字符串替换,正则表达式,可以参考
- 使用`ElementTree`的`parse()`函数解析XML文件,返回一个`ElementTree`对象。 - `ElementTree`对象的`getroot()`方法可以获取XML文档的根元素。 示例代码: ```python import xml.etree.ElementTree as ET ...
首先,我们需要导入`xml.etree.ElementTree`模块,它是Python的标准库之一,提供了XML处理的API。这个模块包含了两个主要的类:`ElementTree`和`Element`。`ElementTree`表示整个XML文档,而`Element`则表示XML文档...
Python提供了几个库来处理XML,最常用的是`xml.etree.ElementTree`。这个库提供了一种高效且易于使用的API,可以方便地解析、创建和修改XML文档。 在`src`目录中,可能包含的是实现XML解析的Python源代码文件。这些...