Python XPath / libxml2 запрос пространства имен - PullRequest
0 голосов
/ 19 декабря 2011

Я пытался проанализировать XML-фид London Underground Linestatus - без особого успеха. Я бы ожидал, что это будет "легко" с использованием XPath, но я получаю пустые узлы.

Я совершенно уверен, что не правильно обращаюсь с пространством имен в Великобритании.

Вот мой (довольно простой код):

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 Ответ

4 голосов
/ 19 декабря 2011

Вам необходимо добавить косую черту в конце URI пространства имен.Правильный URI: http://webservices.lul.co.uk/.

...