2011-12-19 28 views
0

私はロンドンのUnderground Linestatus XML "フィード"を解析しようとしていますが、ほとんど成功していません。私はこれがXPathを使って "簡単"になると期待していましたが、空のノードが得られています。Python XPath/libxml2名前空間クエリ

私は英国の名前空間を正しく扱っていないと確信しています。ここで

は私の(という単純なコード)である:

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が正しく解析されています。

誰かがこれにいくつかの光を当てることができますか?

+0

正しい(完全な)namespace-uriを指定していないため、存在しない名前空間の要素を選択しようとしていません。 –

答えて

4

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