Python如何获取XML嵌套多个子标签的内容
时间: 2024-03-15 22:45:30 浏览: 205
获取xml文件中标签所对应的数据
在Python中,可以使用`ElementTree`模块来解析XML文档。如果要获取XML嵌套多个子标签的内容,可以使用`Element`对象的`iter()`方法来遍历所有匹配的子节点,并使用`find()`方法或`findall()`方法获取子标签的内容。
下面是一个示例XML文档:
```xml
<root>
<person>
<name>John</name>
<age>30</age>
<address>
<city>New York</city>
<state>NY</state>
</address>
</person>
<person>
<name>Jane</name>
<age>25</age>
<address>
<city>Los Angeles</city>
<state>CA</state>
</address>
</person>
</root>
```
我们可以使用`ElementTree`模块来解析这个XML文档,并获取`name`、`age`和`city`子标签的内容,示例如下:
```python
import xml.etree.ElementTree as ET
# 解析XML文档
tree = ET.parse('example.xml')
# 获取根节点
root = tree.getroot()
# 遍历person子节点
for person in root.iter('person'):
# 获取name子标签的内容
name = person.find('name').text
# 获取age子标签的内容
age = person.find('age').text
# 获取city子标签的内容
city = person.find('address/city').text
# 输出结果
print('Name:', name)
print('Age:', age)
print('City:', city)
```
在这个示例中,我们首先使用`ET.parse()`方法解析XML文档,然后使用`getroot()`方法获取根节点。接着,使用`iter()`方法遍历所有`person`子节点,然后分别使用`find()`方法获取`name`、`age`和`address/city`子标签的内容,并将它们打印出来。
需要注意的是,`find()`方法只返回第一个匹配的子节点,如果要获取所有匹配的子节点,可以使用`findall()`方法。另外,在获取`address/city`子标签的内容时,我们使用了路径分隔符`/`将它们连接起来。
阅读全文