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

如何修改Python代码以从XML属性中解析ID(替代原有的ID元素解析逻辑)

如何修改Python代码以从XML属性中解析ID(替代原有的ID元素解析逻辑)

别担心,我来帮你调整代码适配新的XML结构!先理清楚前后的变化:

原来的XML结构与代码逻辑

原来的XML是交替的<id>和<name>子元素:

<members>
  <id>26</id>
  <name>Alexi Delano</name>
  <id>27</id>
  <name>Cari Lekebusch</name>
</members>

对应的代码用grouper把相邻的id和name文本两两分组,再生成id和name对。

现在的XML结构变化

现在XML把ID改成了<name>元素的属性,结构变成:

<members>
  <name id="26">Alexi Delano</name>
  <name id="27">Cari Lekebusch</name>
</members>

这种情况下,我们不需要再用grouper分组了,直接遍历每个<name>元素,分别提取它的id属性和文本内容即可。

修改后的代码

把你的element_members方法改成这样:

def element_members(self, element):
    # 遍历<members>下的每个<name>子元素
    for name_element in element.iterchildren():
        # 从元素属性中获取id,转成整数类型
        member_id = int(name_element.get('id'))
        # 获取<name>的文本内容并去除首尾空白
        member_name = name_element.text.strip()
        yield member_id, member_name

关键修改点说明

  • 去掉了原来的grouper逻辑,因为现在每个<name>元素已经包含了我们需要的所有信息(id属性+name文本)
  • 用name_element.get('id')获取元素的id属性值,再转成整数(和原来的int(id)保持一致的类型)
  • 直接从name_element.text获取名称文本,再用strip()处理空白,和原来的逻辑保持一致

这样修改后,代码就能适配新的XML结构,正常生成id和name的配对啦!

备注:内容来源于stack exchange,提问作者Paul Taylor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 14:50:25