当xml标记丢失时,为什么在python脚本中返回NoneType

当xml标记丢失时,为什么在python脚本中返回NoneType,python,xsd,lxml,Python,Xsd,Lxml,这是xml <FILE> <FILE_NAME>Test1.fits</FILE_NAME> </FILE> <FILE> <FILE_NAME>Test2.fits</FILE_NAME> <RESTRICTED>1</RESTRICTED> </FILE> 上述方法可行,但看起来有些笨拙。但是我真正想要分配的是限制xml中的值(如果存在),或者限制

这是xml

<FILE>
    <FILE_NAME>Test1.fits</FILE_NAME>
</FILE>
<FILE>
    <FILE_NAME>Test2.fits</FILE_NAME>
    <RESTRICTED>1</RESTRICTED>
</FILE>
上述方法可行,但看起来有些笨拙。但是我真正想要分配的是限制xml中的值(如果存在),或者限制不存在的值为零。现在我在xsd中将它定义为一个整数,但我更希望它是布尔值,以便进行额外的检查。我尝试使用带有默认值的findtext,结果

回溯(最近一次呼叫最后一次): 文件“File\u tracking\u populator.py”,第185行,在 打印“isRestricted=”+str(isRestricted) 名称错误:未定义名称“IsResRestricted”

我尝试在xsd中设置一个默认值,但也没有成功

当我这么做的时候

isRestricted = file.findtext('RESTRICTED')
我得到

回溯(最近一次呼叫最后一次): 文件“File\u tracking\u populator.py”,第199行,在 (受限制); 类型错误:%d格式:需要数字,不是非类型

我做错了什么?

也许“名称'isresrestricted'没有定义”,因为它拼写错误?这有帮助吗?
isRestricted=0
restricted = 0
fileName = file.findtext('FILE_NAME')
restricted = file.findtext('RESTRICTED')
if restricted is not None:
    isRestricted = int(restricted)
isRestricted = file.findtext('RESTRICTED')