1

我一直在尝试解析伦敦地铁 Linestatus XML“提要”——但收效甚微。我本来希望这使用 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。

有人可以对此有所了解。

4

1 回答 1

6

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

于 2011-12-19T19:31:40.780 回答