1

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 "******************************"

record_nodes ループは無視されています。xml は正しく解析されています。

誰かがこれに光を当ててください。

4

1 に答える 1

6

名前空間 URI の末尾にスラッシュを追加する必要があります。正しい URI はhttp://webservices.lul.co.uk/.

于 2011-12-19T19:31:40.780 に答える