1、简介
xml.etree.ElementTree 模块实现了一个简单而高效的API解析和创建xml数据,该模块对恶意构造的数据是不安全的,如果需要解析不受信任或未经身份验证的数据,请参考xml漏洞
2、解析xml
以下面xml文件作为示例数据
读取数据
import xml.etree.ElementTree as ET
tree = ET.parse(xml_path)
root = tree.getroot()
root
# result
<Element 'data' at 0x000002248A147A98>
生成的root有一个tag和字典属性
print(root.tag)
print(root.attrib)
# result
data
{
}
通过迭代来查看root的子节点的tag和attrib
for child in root:
print(child.tag)
print(child.attrib)
# result
country
{
'name': 'Liechtenstein'}
country
{
'name': 'Singapore'}
country
{
'name': 'Panama'}
子节点是嵌套的,可以通过索引来访问特定的节点
root[1][2].text
# result
'59900'
3、获取xml中的元素
Element 中的一些方法,可以递归的遍历它下面的所有子树,如Element.iter()
for neighbor in root.iter('neighbor'):
print(neighbor.attrib)
# result