You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python解析XML:如何获取Convergence对象属性及Molar Flow值?

解决XML读取Convergence节点属性的问题

原代码问题分析

  • XPath表达式错误:原代码root.findall("./[@object = 'Convergence']")既未指定目标节点为Object,属性名也写错(目标属性是name而非object),导致无法定位到目标节点。
  • 逻辑错误:遍历所有Property节点后,判断该节点是否属于findall返回的结果,但findall找的是Object节点,Property是其子节点,两者不可能相等,因此永远不会触发打印。

需求1:读取Convergence节点下的所有Property属性

先定位到name为Convergence的Object节点,再遍历其下的所有Property子节点,输出属性:

import xml.etree.ElementTree as ET

tree = ET.parse("simulation.xml")
root = tree.getroot()

# 定位目标Object节点
convergence_obj = root.find("./Object[@name='Convergence']")
if convergence_obj is not None:
    # 遍历所有子Property节点并输出属性
    for prop in convergence_obj.findall("./Property"):
        print(prop.attrib)

需求2:获取Molar Flow属性的value值

直接通过XPath定位到Convergence节点下的Molar Flow属性节点,提取其value值:

import xml.etree.ElementTree as ET

tree = ET.parse("simulation.xml")
root = tree.getroot()

# 精准定位目标Property节点
molar_flow_prop = root.find("./Object[@name='Convergence']/Property[@name='Molar Flow']")
if molar_flow_prop is not None:
    molar_flow_value = molar_flow_prop.get("value")
    print(f"Molar Flow value: {molar_flow_value}")

内容的提问来源于stack exchange,提问作者ruoooooooolan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:31:12