这两天学习如何使用微软的一个API,用python写了接口代码使用HTTP方法测试,HTTP的API的最后返回是一个XML文件,翻了翻,看见python的xml的ElementTree这套接口的API看起来比较对胃口,于是使用了一下ElementTree进行解析
但死活用find,和findall两个函数接口服务无法得到希望的tag,百思不得其借,
Python的docamention上面对这两个函数,解释非常简单。
match
Finds the first subelement matching
match
.
match
may be a tag name or path. Returns an element instance or
None
.
回家找了一下《Python Essential Reference》国内翻译《Python参考手册》,手册的解释太简单,其参数match含义其实挺复杂的。
其有tag,* .//tag,tag1/tag2,*/tag等不同的用法,文档上根本没有说明白。不知道是不是因为ElementTree 是一个外家的孩子,在本家不受待见还是因为是effbot自己提交的文档,文档写的马虎了。
有兴趣的去
http://effbot.org/zone/element.htm
翻翻,比docament
这两天学习如何使用微软的一个API,用python写了接口代码使用HTTP方法测试,HTTP的API的最后返回是一个XML文件,翻了翻,看见python的xml的ElementTree这套接口的API看起来比较对胃口,于是使用了一下ElementTree进行解析但死活用find,和findall两个函数接口服务无法得到希望的tag,百思不得其借,Python的docamention上面对这
python
里使用正则的
findall
函数的实例详解
在前面学习了正则的search()函数,这个函数可以找到一个匹配的字符串返回,但是想找到所有匹配的字符串返回,怎么办呢?其实得使用
findall
()函数。如下例子:
#
python
3. 6
#http://blog.csdn.net/caimouse/article/details/51749579
import re
text = 'abbaaabbbbaaaaa'
pattern = 'ab'
for match in re.
findall
(pattern, text):
print('Found {!r}'
xml
.etree.
ElementTree
(简称ET)
一个简单、轻量级的
XML
处理器,用于创建、解析、处理
XML
数据
ConfigParser(
Python
3.x中已改名为configparser)
配置文件解析器, 用于创建、解析、处理类似Windows系统上的INI配置文件
二、
xml
处理模块:
xml
.etree.
ElementTree
1.
XML
简介
XML
,全称eXtensible Markup Language,即可扩展标记语言。
import
xml
.etree.c
ElementTree
as ET
except ImportError:
import
xml
.etree.
ElementTree
as ET
tree = ET.parse('country.
xml
')
# <
xml
.etree.
ElementTree
.
ElementTree
object at 0x00000230D5DDF1C0>
root = tree.getroot()
1、在调用
ElementTree
.parse之前一定要想调用以下代码:
uri = "http://schemas.android.com/apk/res/android"
ElementTree
.register_namespace("android", uri)
要是没有调用上述代码注册namespace,在调用 tree.write将
xml
写回去时候,android:会被替换为...
在
XML
解析方面,
Python
贯彻了自己“开箱即用”(batteries included)的原则。在自带的标准库中,
Python
提供了大量可以用于处理
XML
语言的包和工具,数量之多,甚至让
Python
编程新手无从选择。
本文将介绍深入解读利用
Python
语言解析
XML
文件的几种方式
BeautifulSoup 文档里,find、find_all两者的定义如下:
find_all(tag, attributes, recursive, text, limit, keywords)
find_all(标签、属性、递归、文本、限制、关键词)
find(tag, attributes, recursive, text, keywords)
find与find_all的区别,f...
ElementTree
在
Python
标准库中有两种实现。一种是纯
Python
实现例如
xml
.etree.
ElementTree
,另外一种是速度快一点的
xml
.etree.c
ElementTree
。
import
xml
.etree.c
ElementTree
as ET
### 回答1:
Python
中
ElementTree
模块是一种解析和操作
XML
文档的方式。您可以使用
ElementTree
读取
XML
文件,也可以使用
ElementTree
创建和修改
XML
文档。
以下是
ElementTree
解析
XML
的基本步骤:
1. 导入
ElementTree
模块。
2. 使用
ElementTree
的 parse() 函数打开
XML
文件。
3. 获取根元素。
4. 使用根元素的 find() 或
findall
() 方法查找特定元素。
5. 使用元素的 attrib 属性获取元素的属性。
6. 使用元素的 text 属性获取元素的文本。
下面是一个使用
ElementTree
解析
XML
文件的示例代码:
```
python
import
xml
.etree.
ElementTree
as ET
# 打开
XML
文件
tree = ET.parse('example.
xml
')
# 获取根元素
root = tree.getroot()
# 查找所有 country 元素
for country in root.
findall
('country'):
# 获取 country 元素的属性
name = country.get('name')
population = country.get('population')
print(name, population)
# 查找 country 元素下的 rank 元素
rank = country.find('rank')
# 获取 rank 元素的文本
print(rank.text)
这是一个基本的示例代码,您可以根据您的需要进行更改和修改,以实现特定的
XML
解析和操作功能。
### 回答2:
Python
ElementTree
是
Python
标准库中用于
XML
解析的模块,他提供了一个简单而有效的方法来解析
XML
文档并提取相关数据。
Python
的
ElementTree
在
Python
中提供了一种基于树型结构的解析方式,可以很简单的遍历整个
XML
文档。
ElementTree
提供了Element类,该类代表
XML
元素。每个
XML
元素都有指定的标签、属性和子元素,可以使用
ElementTree
在
Python
中很容易地解析和处理这些元素。
下面是
Python
ElementTree
解析
XML
的一些常用方法:
1. parse()函数:使用此函数加载
XML
文件并将其转换为
ElementTree
对象。
2. Element()函数:使用此函数创建一个新的元素。
3.
findall
()函数:使用此函数查找所有匹配特定标签的元素。它将返回一个元素列表。
4. find()函数:使用此函数查找第一个匹配特定标签的元素。它将返回一个元素对象。
5. text属性:使用此属性访问元素标记中的文本内容。
6. attrib属性:使用此属性访问元素的属性字典。
7. tag属性:使用此属性访问元素的标签名称。
8. get()方法:使用此方法取得元素的特殊属性。
9. iter()函数:使用此函数可以遍历整个
XML
文档,一次处理每个元素。
总体而言,
Python
ElementTree
提供了一种非常灵活和强大的方式来解析和处理
XML
文件。无论是处理大型的、复杂的
XML
文档,还是处理小型的、简单的
XML
文件,
Python
ElementTree
均能提供一种非常方便、易用和高效的解决方案。
### 回答3:
Python
ElementTree
是
Python
的
XML
解析库, 通过
Python
ElementTree
, 可以轻松地解析和操作
XML
文件。本文将简要介绍如何使用
Python
ElementTree
解析
XML
文件。
1. 解析
XML
文件
在
Python
中,可以使用
ElementTree
库的
ElementTree
.parse()方法解析
XML
文件,例如:
import
xml
.etree.
ElementTree
as ET
tree = ET.parse('filename.
xml
')
root = tree.getroot()
通过以上代码,我们将
XML
文件以tree对象的方式进行解析,并得到
XML
文件的根节点root。此时我们可以通过打印root节点,查看该文件的内部结构。
2. 获取节点数据
一旦我们已经解析了
XML
,我们可以使用
Python
ElementTree
库访问和操作树中的节点数据。最常用的方法即是通过节点的标签名称和属性来访问该节点:
root = ET.fromstring(country_data_as_string)
for child in root:
print(child.tag, child.attrib)
在这个例子中,我们遍历了
XML
文档中所有节点,打印出它们的标签名称和属性。
3. 查找特定节点
有时候我们只需要获取
XML
文档中的特定节点。此时可以使用element.find()方法,该方法返回
XML
文档中tag名称与我们期望的相同的第一个元素。例如:
root.find(".//rank/[@year='2011']")
上述代码中,我们使用XPath表达式在根元素之下查找rank元素,并使用一个特定的year属性值过滤这些元素。我们可以将输出与我们所期望的元素进行比较,以确定方法是否有效。
4. 修改
XML
文件
使用
Python
ElementTree
库,我们可以轻松地修改
XML
文档中的数据并将其写回到文件中。例如,我们可以使用以下代码将内容写回到
XML
文件中:
tree.write('filename.
xml
')
如果需要只写入更新后的
XML
元素,而不是完整的
XML
文档,则可以使用
ElementTree
.tostring()方法。例如:
xml
_string = ET.tostring(root)
在本文中,我们已经简要介绍了如何使用
Python
ElementTree
解析
XML
和查找特定节点以及修改
XML
文件。
Python
ElementTree
是一个功能强大和灵活的
XML
解析库,可用于处理各种规模和类型的
XML
文件。
慎用Reactor Notify机制
快乐的阿常艾念宝:
C++使用OLE高速读写EXCEL的源码
爱钓鱼的程序猿:
C++使用OLE高速读写EXCEL的源码
qq_40745500:
C++使用OLE高速读写EXCEL的源码
weixin_44717825: