2010-02-28 4 views
1

Фон: Я иду из C# -land, поэтому я ищу что-то вроде возможности обрабатывать узлы и значения, выбирая через Xpath.Анализ XML в Python с использованием Expat

Вот мой код, до сих пор:

import urllib 
import sys 
from xml.parsers import expat 

url = 'http://SomeWebService.SomeDomain.com' 
u = urllib.urlopen(url) 

Parser = expat.ParserCreate() 
data = u.read() 
try: 
    Parser.Parse(data) 
except: 
    print "ERROR: Can't parse the XML" 
    sys.exit(0) 

Какой стандарт Lib я должен использовать, чтобы иметь дело с элементами DOM, как объекты вместе с их атрибутами, как можно было бы в C#?

Я ищу что-то вроде узлов Nodelist = Parser.SelectNodes («Xpath»)

ответ

1

Я думаю, вы бы больше удачи, если вы пробовали использовать один из xml.dom пакетов или xml.etree.ElementTree. ElementTree имеет ограниченную поддержку xpath, поэтому, если это то, к чему вы привыкли, это может быть лучший выбор.

+0

Поддержка XPath в ElementTree: http://effbot.org/zone/element-xpath.htm – Krab

+0

Я ищу здесь: http://bit.ly/baRkvP, и я не вижу список различные реализации XML DOM. Можете ли вы указать мне один или несколько списков доступных xml.dom pkgs (и, надеюсь, включить некоторые ссылки на примеры)? – bitcycle

+0

В следующих двух главах руководства, которое вы указали на обложки 'xml.dom.minidom' [1] и' xml.dom.pulldom' [2]. На данный момент я не могу придумать никаких примеров, но это должно быть довольно естественно, если вы привыкли работать с DOM-манипуляциями. Тем не менее, я рекомендую ElementTree, если он может удовлетворить ваши потребности. [1]: http://docs.python.org/library/xml.dom.minidom.html [2]: http://docs.python.org/library/xml.dom.pulldom. HTML – Epcylon