.NET中的xpath的巨大粉丝,以及python中的sax,但第一次在python中使用xpath。如何从python中的xmlNode获取xpathContext
我有一个小脚本,它使用xpath从文档中选择一些节点,遍历它们,然后理想地再次使用xpath从它们获取相关数据。但是,我无法得到最后一点,一旦我有了xmlNode,我无法从中获取上下文。
import libxml2
import urllib
doc = libxml2.parseDoc(
urllib.urlopen('http://somemagicwebservice.com/').read())
ctxt = doc.xpathNewContext()
listitems = ctxt.xpathEval('//List/ListItem')
for item in listitems:
itemctxt = item.xpathNewContext()
title = itemctxt.xpathEval('//ItemAttributes/Title')
asin = itemctxt.xpathEval('//Item/ASIN')
itemctxc.xpathFreeContext()
ctxt.xpathFreeContext()
doc.freeDoc()
然而itemctxt = item.xpathNewContext()
位失败,
itemctxt = item.xpathNewContext()
AttributeError: xmlNode instance has no attribute 'xpathNewContext'
任何想法如何上的xmlNode使用XPath?我找不到任何好的在线信息。 谢谢
那么我有类似的问题与lxml,但事实证明,这个问题实际上与xpath如何处理名称空间有关。 lxml的ElementPath简化了一些东西。谢谢。 – Kurt 2009-07-05 15:25:55