2010-02-28 41 views
1

背景:我来自C#-land,所以我正在寻找能够通过Xpath选择来处理节点和值的东西。使用Expat分析Python中的XML

这里是我的代码,到目前为止:

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) 

什么标准库我应该用处理DOM元素及其属性的对象在C#中一个可能吗?

我正在寻找类似的NodeList节点= Parser.SelectNodes(“的XPath”)

回答

1

我认为你将有更多的运气,如果你试图使用xml.dom包之一,或xml.etree.ElementTree。 ElementTree有一些有限的xpath支持,所以如果这是你习惯的,它可能是最好的选择。

+0

ElementTree中的XPath支持:http://effbot.org/zone/element-xpath.htm – Krab 2010-02-28 09:19:54

+0

我在这里看:http://bit.ly/baRkvP,我没有看到列表不同的XML DOM实现。你能指给我一个或多个可用的xml.dom pkgs列表(希望包含一些指向示例的链接)吗? – bitcycle 2010-02-28 19:41:46

+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 2010-03-03 09:22:14