python 分层解析不规则xml文件
时间: 2023-07-11 17:19:48 浏览: 163
如果XML文件比较不规则且层次较深,可以使用递归方式来分层解析。下面是一个简单的示例代码,可以递归地解析一个名为“example.xml”的XML文件,并按层次打印出其中的所有元素和属性:
```python
import xml.etree.ElementTree as ET
def print_element(elem, level=0):
# 打印当前元素的tag和attrib
print(' ' * level + elem.tag, elem.attrib)
# 递归处理所有子元素
for child in elem:
print_element(child, level + 1)
# 打开XML文件并解析为Element对象
tree = ET.parse('example.xml')
root = tree.getroot()
# 调用print_element函数递归打印XML树的所有元素和属性
print_element(root)
```
在此示例中,定义了一个名为print_element的递归函数。该函数接收一个Element对象和一个表示当前层次的level参数,打印当前元素的tag和attrib,然后递归处理所有子元素,并将当前层次加1。
在主程序中,首先使用ET.parse函数打开XML文件并将其解析为Element对象。然后,使用getroot()函数获取XML树的根元素。最后,调用print_element函数递归打印XML树的所有元素和属性。
需要注意的是,在实际应用中,需要根据具体的XML文件结构来编写适当的递归函数,以便正确地处理所有元素和属性。
阅读全文