我试图用XPath查询用lxml解析的html文档。该文档是关于Plastic in Wikipedia的页面的直接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控制台中运行命令,但我认为这可能不是问题所在。我做错了什么?
答案 0 :(得分:15)
这是一个简单的拼错法术。您应该使用namespaces
代替namespace
。