Python XPath / libxml2命名空间查询

时间:2011-12-19 19:04:00

标签: python xpath namespaces libxml2 contextpath

我一直在尝试解析伦敦地铁Linestatus XML" feed" - 收效甚微。我原以为这很容易"容易"使用XPath,但我得到空节点。

我非常确定我没有正确处理uk命名空间。

这是我的(相当简单的代码):

import libxml2
from urllib2 import urlopen

data = urlopen('http://cloud.tfl.gov.uk/TrackerNet/LineStatus').read()

try:
    doc = libxml2.parseDoc(data)
except (libxml2.parserError, TypeError):
    print "Problems loading XML"

context = doc.xpathNewContext()
context.xpathRegisterNs("uk", "http://webservices.lul.co.uk")

record_nodes = context.xpathEval('//uk:LineStatus')

for node in record_nodes:
    print "******************************"

正在忽略record_nodes循环。正在正确解析xml。

有人可以对此有所了解。

1 个答案:

答案 0 :(得分:4)

您需要在命名空间URI的末尾添加正斜杠。正确的URI是http://webservices.lul.co.uk/