使用 xml.etree.ElementTree 获取文件中 XML 标签的列表
Getting a list of XML tags in file, using xml.etree.ElementTree
如前所述,我需要使用库 xml.etree.ElementTree
.
获取文件中 XML 标签的列表
我知道有像 ETVar.child, ETVar.getroot(), ETVar.tag, ETVar.attrib
.
这样的属性和方法
但是为了能够使用它们并至少获得级别 2 的标签名称,我必须使用 nested for。
目前我有类似的东西
for xmlChild in xmlRootTag:
if xmlChild.tag:
print(xmlChild.tag)
目标是 获取文件中所有甚至深层嵌套的 XML 标签 的列表,消除重复项。
为了更好的想法,我添加了 XML 代码的可能示例:
<root>
<firstLevel>
<secondlevel level="2">
<thirdlevel>
<fourth>text</fourth>
<fourth2>text</fourth>
</thirdlevel>
</secondlevel>
</firstlevel>
</root>
我对该主题进行了更多研究并找到了合适的解决方案。由于这可能是一项常见的任务,所以我会回答它,因此我相信它可以帮助其他人。
我要找的是 etree 方法 iter。
import xml.etree.ElementTree as ET
# load and parse the file
xmlTree = ET.parse('myXMLFile.xml')
elemList = []
for elem in xmlTree.iter():
elemList.append(elem.tag)
# now I remove duplicities - by convertion to set and back to list
elemList = list(set(elemList))
# Just printing out the result
print(elemList)
重要提示
xml.etree.ElemTree
是标准 Python 库
- 示例是为
Python v3.2.3
编写的
- 用于消除口是心非的机制基于转换为
set
,它只允许唯一值,然后再转换回 list
。
您可以使用 built-in Python 集理解:
import xml.etree.ElementTree as ET
xmlTree = ET.parse('myXMLFile.xml')
tags = {elem.tag for elem in xmlTree.iter()}
如果你特别需要一个列表,你可以将它转换为一个列表:
import xml.etree.ElementTree as ET
xmlTree = ET.parse('myXMLFile.xml')
tags = list({elem.tag for elem in xmlTree.iter()})
如前所述,我需要使用库 xml.etree.ElementTree
.
我知道有像 ETVar.child, ETVar.getroot(), ETVar.tag, ETVar.attrib
.
但是为了能够使用它们并至少获得级别 2 的标签名称,我必须使用 nested for。
目前我有类似的东西
for xmlChild in xmlRootTag:
if xmlChild.tag:
print(xmlChild.tag)
目标是 获取文件中所有甚至深层嵌套的 XML 标签 的列表,消除重复项。
为了更好的想法,我添加了 XML 代码的可能示例:
<root>
<firstLevel>
<secondlevel level="2">
<thirdlevel>
<fourth>text</fourth>
<fourth2>text</fourth>
</thirdlevel>
</secondlevel>
</firstlevel>
</root>
我对该主题进行了更多研究并找到了合适的解决方案。由于这可能是一项常见的任务,所以我会回答它,因此我相信它可以帮助其他人。
我要找的是 etree 方法 iter。
import xml.etree.ElementTree as ET
# load and parse the file
xmlTree = ET.parse('myXMLFile.xml')
elemList = []
for elem in xmlTree.iter():
elemList.append(elem.tag)
# now I remove duplicities - by convertion to set and back to list
elemList = list(set(elemList))
# Just printing out the result
print(elemList)
重要提示
xml.etree.ElemTree
是标准 Python 库- 示例是为
Python v3.2.3
编写的
- 用于消除口是心非的机制基于转换为
set
,它只允许唯一值,然后再转换回list
。
您可以使用 built-in Python 集理解:
import xml.etree.ElementTree as ET
xmlTree = ET.parse('myXMLFile.xml')
tags = {elem.tag for elem in xmlTree.iter()}
如果你特别需要一个列表,你可以将它转换为一个列表:
import xml.etree.ElementTree as ET
xmlTree = ET.parse('myXMLFile.xml')
tags = list({elem.tag for elem in xmlTree.iter()})