etree将属性作为值而不是字符串

时间:2011-06-21 09:07:47

标签: python lxml elementtree

对于给定的元素,我想检查xsi:nil属性是否设置为true。

我目前的代码是

xsinil = dataFact.get('{http://www.w3.org/2001/XMLSchema-instance}nil', False)

但不是True xsinil是字符串类型...

什么是最好的解决方案?我认为这不是很优雅:

xsinil=dataFact.get('{http://www.w3.org/2001/XMLSchema-instance}nil', False)
if xsinil == 'true' or xsinil == '1' :
    xsinil = True

2 个答案:

答案 0 :(得分:1)

这看起来更好:

xsinil = dataFact.get('...', False) in ('true', '1')

仅当True函数的结果是xsinilgetTrue之一时,才会将'true'分配给'1'变量。

答案 1 :(得分:1)

Element.get()的第二个arg几乎无关紧要 - 只是不要使用True

您需要的只是:

xsinil = dataFact.get('......') in ('true', '1')