Python XPath / libxml2名称空间查询

cho*_*way 0 python xpath namespaces libxml2 contextpath

我一直在尝试解析London Underground 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 "******************************"
Run Code Online (Sandbox Code Playgroud)

record_nodes循环被忽略。xml已正确解析。

有人可以说明一下吗?

mzj*_*zjn 5

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