首页 > 解决方案 > 使用Python中根节点的小写属性抛出的ElementTree进行XML解析

问题描述

我正在尝试使用 ElementTree 库在 python 中解析 XML 文档,但是我有一个以小写字母开头的属性这一事实使解析失败。这是根节点:

<Page xmlns="http://<some url>/AS/VC/Project" Name="Init_Page">

这是我实现代码的方式:

import xml.etree.ElementTree as ET

tree = ET.parse('C:\Temp\Init_Page.page') #Init_Page.page is an xml file with UTF-8 encoding
root = tree.getroot()
print(root.tag)

#Outputs {http://<some url>/AS/VC/Project}Page

这显然不是我想要的,因为我只想让它打印“页面”。而且由于它打印该根标签的方式,如果我root.iter()为某个标签打印,则不会打印任何内容。但是,当我将“xmlns”属性更改为“Xmlns”时,它会为根标记打印“Page”。并且子节点的任何迭代都可以正常工作。

我尝试将 xml 转换为小写字符串并使用fromstring(),但我仍然得到相同的结果。

有没有办法解决?我正在使用 python 版本 3.7.4。

任何帮助将不胜感激,因为我对 python 相当陌生!

标签: pythonpython-3.xxmlparsingelementtree

解决方案


推荐阅读