带有lxml的XPath失败



我正试图用XPath查询一个用lxml解析的html文档。该文档是维基百科中关于塑料的页面的纯html下载。然后我用lxml禁用实体替换来解析它,以避免出现"&reg’

from lxml import etree
root = etree.parse("plastic.html",etree.XMLParser(resolve_entities=False))

然后,我检索名称空间url

htmltag = root.iter().next()
nsurl = htmltag.nsmap.values()[0]

现在,我想在"root"或"htmltag"上使用xpath查询,但我无法做到。我尝试了不同的方法,但在我看来,以下形式是最正确的,无论如何都会产生错误。

root.xpath('//ns:body',namespace={'ns',nsurl})

这就是我得到的

XPathResultError: Unknown return type: dict

我正在IPython控制台中运行命令,但我认为这可能不是问题所在。我做错了什么?

这是一个简单的拼写错误。您应该使用namespaces而不是namespace

最新更新