.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