You need to enable JavaScript to run this app. Python用ElementTree解析XML时餐厅地址重复输出如何修改
优惠活动
大模型
产品
解决方案
定价
更多

Python用ElementTree解析XML时餐厅地址重复输出如何修改

代码修改方案

你写的代码问题出在内层循环的查找范围:你每次都从XML根节点搜索全量餐厅的地址,所以每打印一个餐厅名称,都会把所有餐厅的地址全部输出一遍,才会出现重复打印的问题。另外内外层循环用了同一个变量名tag,也容易引发逻辑混淆。

修改后的完整代码如下:

import xml.etree.ElementTree as ET
 
root_node = ET.parse('record.xml').getroot()
 
# 遍历每个餐厅节点
for restaurant in root_node.findall('restaurant'):
    # 获取当前餐厅的名称属性
    print("Restaurant name:")
    print(restaurant.attrib['name'])
    # 直接在当前餐厅节点下查找属于它的address节点即可
    for addr in restaurant.findall('address'):
        print(addr.text)

修改后运行,每个餐厅就只会输出自身对应的地址:单地址的餐厅输出1条地址,多地址的餐厅(比如示例里的Nyonya Baba)会输出自身的多条地址,不会再出现全量地址重复打印的问题。

内容的提问来源于stack exchange,提问作者TAI YU ZHE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 19:36:03