python如何查找xml所有节点下的特定节点
时间: 2023-07-05 16:22:24 浏览: 90
你可以使用 Python 的 ElementTree 或 lxml 库来查找 XML 所有节点下的特定节点。具体方法如下:
假设你有以下的 XML 文档:
```xml
<root>
<person>
<name>John</name>
<age>32</age>
</person>
<person>
<name>Jane</name>
<age>28</age>
</person>
<animal>
<name>Tom</name>
<type>cat</type>
</animal>
</root>
```
如果你想查找所有节点下的 name 节点,可以按照以下方式来查找:
使用 ElementTree 库:
```python
import xml.etree.ElementTree as ET
# 解析 XML 文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 查找所有 name 节点
name_nodes = root.findall('.//name')
# 打印结果
for name_node in name_nodes:
print(name_node.text)
```
在这段代码中,我们使用 `findall()` 方法来查找所有 name 节点。参数 `.//name` 表示查找所有名称为 name 的节点,`.` 表示从根节点开始查找,`//` 表示查找所有后代节点。最后,我们遍历所有 name 节点并打印其文本内容。
输出结果为:
```
John
Jane
Tom
```
使用 lxml 库:
```python
from lxml import etree
# 解析 XML 文件
tree = etree.parse('example.xml')
root = tree.getroot()
# 查找所有 name 节点
name_nodes = root.xpath('.//name')
# 打印结果
for name_node in name_nodes:
print(name_node.text)
```
在这段代码中,我们使用 `xpath()` 方法来查找所有 name 节点。参数 `.//name` 的含义与之前相同。最后,我们遍历所有 name 节点并打印其文本内容。
输出结果也是:
```
John
Jane
Tom
```
需要注意的是,如果你的 XML 文件比较大,使用 lxml 库会更加高效。
阅读全文