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

Python XML解析问题:判断find返回None时逻辑错误

问题分析与解决
  • 核心错误:你误将Python的None对象与字符串'None'做了相等性判断。root.find()找不到目标标签时返回的是Python内置的空对象None,而非字符串'None',所以!= 'None'这个条件永远成立,导致else分支永远不会触发。
  • 额外优化:没必要重复调用root.find('personalDataRelated'),可以先把查询结果存入变量,既提升代码效率又增强可读性。

修正后的代码示例:

import xml.etree.ElementTree as et

xmlfileName = 'new.xml'
xmlparse = et.parse(xmlfileName)
root = xmlparse.getroot()

# 先存储查询结果,避免重复查找
personal_data_elem = root.find('personalDataRelated')
print(personal_data_elem)

# 直接和None对象做判断
if personal_data_elem is not None:
    data = "Oui"
else:
    data = "Non"

也可以用更简洁的三元表达式写法:

import xml.etree.ElementTree as et

xmlfileName = 'new.xml'
xmlparse = et.parse(xmlfileName)
root = xmlparse.getroot()

data = "Oui" if root.find('personalDataRelated') is not None else "Non"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:35:22