python使用ElementTree解析XML文件

一、将XML网页保存到本地


要加载XML文件首先应该将网页上的信息提取出来,保存为本地XML文件。抓取网页信息可以python的urllib模块。

代码如下:

from urllib import urlopen
url = "http://********/**"
resp = urlopen(url).read()
f = open(‘文件保存路径‘, ‘w‘)
f.write(resp)
f.close()

二、解析XML文件

python有许多可以用来解析XML文件的函数,在这里介绍ElementTree(简称ET).它提供轻量级的python式API。实现逻辑简单,解析效率高。利用ET解析XML文件的方法是:先找出父级标签,然后再一级一级循环找出所需要的子标签,代码如下:

import xml.etree.cElementTree as ET
tree = ET.parse("***.xml")  #加载xml文件
root = tree.getroot()  #得到第二级标签
for child_of_root in root[1]:#root[1]为第二级标签中的第二个子标签
    for child1 in child_of_root[7]: #原理同上
        for child2 in child1:
            print child2.tag, child2.attrib, child2.text
    for child3 in child_of_root[8]:
        for child4 in child3:
            print child4.tag, child4.attrib, child4.text

在上述代码中,child_of_root[7]表示在该级标签中的第八个子标签,在for child2 in child1中是遍历child1的所有子标签,打印出子标签的名称、属性、文本。这样就可以将XML文件解析完成,得到我们所想要的信息。

原文地址:https://www.cnblogs.com/l5623064/p/8574624.html

时间: 2024-08-02 02:02:04

python使用ElementTree解析XML文件的相关文章

Python中用ElementTree解析XML

[XML基本概念介绍] XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. 概念一: <foo> # foo元素的起始标签 </foo> # foo元素的结束标签 # note: 每一个起始标签必须有对应的结束标签来闭合, 也可以写成<foo/> 概念二: <foo> # 元素可以嵌套到任意参次 <bar></bar> # bar元素为foo元素的子元素 </f

Python使用ElementTree处理xml文件

在Python中一般情况我们应该使用ElementTree处理xml文件,ElementTree从Python 2.5开始成为标准模块.一般情况指的是: XML 文件大小适中,对性能要求并非非常严格. 下面讲解如何通过ElementTree来操作XML: 1.引入库 需要用到3个类,ElementTree,Element以及建立子类的包装类SubElement try: import xml.etree.cElementTree as ET except ImportError: import

python xml.etree.ElementTree解析xml文件获取节点

<?xml version = "1.0" encoding = "utf-8"?> <root> <body name="lyc"> <age>110</age> </body> <body name = "l" age = "10"> </body> </root> ###############

Python使用ElementTree解析XML【译】

19.7. xml.etree.ElementTree — The ElementTree XML API 源代码: Lib/xml/etree/ElementTree.py Element类型是一种灵活的容器对象,用于在内存中存储层次数据结构.可以说是list和dictionary的交叉. 注意: xml.etree.ElementTree 模块对含有恶意代码的数据是不安全的.如果你想处理不信任的数据请使用 XML vulnerabilities. 每个element都有一系列相关属性: 标签

python 使用ElementTree解析xml

以country.xml为例,内容如下: <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name=&qu

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文件

比较高效的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文件操作的例子

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>

ElementTree 解析xml(minidom解析xml大文件时,MemoryError)

在使用minido解析xml文件时,因为文件过大,结果报错MemoryError.查询后得知是因为minidom在解析时是将所有文件放到内存里的,很占用内存,所以要考虑换一种方法来处理xml文件. ElementTree相比minidom消耗内存更小,下面是ElementTree的一些简单用法 XML源文件中的部分内容: #导入ElementTree from xml.etree import ElementTree #读入并解析XML文件,读入的是树形结构 doc = ET.parse(XML