(使用 Python 的xml.etree.ElementTree模块):
时间: 2025-09-02 16:47:15 AIGC 浏览: 8
### 使用 Python `xml.etree.ElementTree` 模块解析和操作 XML 数据
#### 导入模块
为了使用此模块,需先导入它。存在两种实现方式:纯Python版本 (`xml.etree.ElementTree`) 和更快速的C语言扩展版本 (`xml.etree.cElementTree`)。推荐采用如下方法确保兼容性[^3]:
```python
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
```
#### 解析 XML 文件
可以通过多种途径加载XML文档到内存中的树结构表示形式。最常用的方法是从文件读取整个文档并构建相应的对象模型。
```python
tree = ET.parse('example.xml')
root = tree.getroot()
```
这段代码会打开名为 'example.xml' 的文件,并将其内容转换成一棵由多个节点组成的树状结构,其中根节点保存于变量 `root` 中[^1]。
#### 遍历 XML 树
一旦有了根元素,就可以通过迭代器轻松访问其下所有的子元素及其属性。
```python
for child in root:
print(f"Tag: {child.tag}, Attributes: {str(child.attrib)}")
```
上述循环展示了如何打印出每个直接子级标签名以及它们携带的所有属性字典[^2]。
#### 查找特定元素
除了简单的遍历外,还可以利用XPath表达式定位符合条件的目标项;对于较为复杂的查询需求来说非常有用。
```python
# 找到所有具有指定名称的空间内的元素
elements = root.findall(".//{http://www.example.com/ns}tagname")
# 或者基于简单路径模式匹配
element = root.find("./parent/child[@attribute='value']")
if element is not None:
value = element.text.strip() # 获取文本内容去除首尾空白字符
```
以上片段说明了怎样运用相对路径语法去检索满足条件的对象实例。
#### 创建新的 XML 文档
创建新文档同样直观易懂,只需依次建立各级别的容器即可形成完整的层次关系链路图谱。
```python
new_root = ET.Element("library") # 定义顶层容器
book = ET.SubElement(new_root, "book", attrib={"type": "fiction"})
title = ET.SubElement(book, "title")
title.text = "The Great Gatsby"
author = ET.SubElement(book, "author")
author.text = "F. Scott Fitzgerald"
ET.dump(new_root) # 输出至控制台查看效果
```
这里演示了一个小型图书库的例子,包含了书籍分类、书名及作者姓名等字段信息。
阅读全文
相关推荐


















