Python lxml find不返回元素

Python lxml find不返回元素,python,lxml,Python,Lxml,我试图用lxml解析并获取xml文件中的元素 <root> <a> <b> </root> print(root.find("a")) --- None for child in root: print child --- a --- b 打印(root.find(“a”)) ---没有 对于根目录中的子目录: 打印子对象 ---a ---b 我很困惑。为什么find不为我返回元素? 我正在使用lxml 4.3.3,我确信它安装正

我试图用lxml解析并获取xml文件中的元素

<root> 
<a>
<b>
</root>

print(root.find("a")) 
--- None
for child in root:
  print child
--- a
--- b 

打印(root.find(“a”))
---没有
对于根目录中的子目录:
打印子对象
---a
---b
我很困惑。为什么find不为我返回元素?
我正在使用lxml 4.3.3,我确信它安装正确

我终于明白了。我正在处理一个文件,该文件在开始时引用了一个模式,这似乎让lxml感到困惑。因此,我可以访问结构、根[0]等,但不能执行诸如搜索标记名之类的基本操作

这不是有效的XML。所有XML标记都必须关闭,可以是关闭标记,也可以是自关闭标记。正确的验证XML解析器应该拒绝它。如果更改为
,会发生什么?对不起,我忘记了transkription中的关闭。我可以向你保证,我试图处理的文件是完全有效和格式正确的。谢谢。@sanlalala,我可以向你保证,我们不会猜测哪些错误是相关的,哪些是打字错误。请回答您的问题,并确保您共享的代码准确反映了您的真实代码。我们需要一份工作。当您进行此操作时,请向我们展示如何创建
root