2011-12-19 4 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

올바른 (전체) 네임 스페이스 -uri를 지정하지 않아 존재하지 않는 네임 스페이스에서 요소를 선택하려고하지 않았습니다. –

답변

4

네임 스페이스 URI의 끝에 슬래시를 추가해야합니다. 올바른 URI는 http://webservices.lul.co.uk/입니다.

관련 문제