【发布时间】:2022-12-12 12:15:28
【问题描述】:
我应该使用什么来迭代多个元素?代码仅提取第一个满足的元素,在本例中为“PROCESSING_LEVEL”,然后可能结束其功能。当我交换这些元素时,情况相反。 我正在尝试制作一个应用程序来从 XML 中提取和解析元数据。
tree = ET.parse(filepath)
root: Element = tree.getroot()
for Processing_level in root.iter('PROCESSING_LEVEL' or 'processingLevel'):
print(f'Processing level: {Processing_level.text}') #console
text.insert('1.0', Processing_level.text + '\n') #gui
text2.insert('1.0', Processing_level.text + '\n') #gui`
我尝试使用其他库,但我觉得 ET 是合适的库。我没有找到其他方法来明确从不同文件中的标签导入.xml 属性。 enter image description here
【问题讨论】:
-
您的 XML 是否同时包含
PROCESSING_LEVEL和processingLevel元素?在iter()中包含or看起来真的很奇怪。 -
请分享您的输入 xml 和预期的输出
-
不,也许我不够清楚。事情是从不同的文件中提取这些参数 'PROCESSING_LEVEL' 或 'processingLevel',具体取决于参数出现的位置(第一个出现在它被导入的文件中,如果不是循环搜索下一个)。我附上图片以使其清楚。
-
在 Python 中,
'PROCESSING_LEVEL' or 'processingLevel'的计算结果为'PROCESSING_LEVEL','processingLevel' or 'PROCESSING_LEVEL'的计算结果为'processingLevel'。使用库不会改变 Python 表达式的语义;在调用库函数之前评估参数。ElementTree中的.iter节点方法的(可选)参数是一个命名(单个)标签的字符串。所以它正在按照它说的去做。
标签: python xml parsing extract elementtree