使用 Expat 在 Python 中解析 XML

Posted

技术标签:

【中文标题】使用 Expat 在 Python 中解析 XML【英文标题】:Parsing XML in Python using Expat 【发布时间】:2010-02-28 08:15:09 【问题描述】:

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

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

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 nodes = Parser.SelectNodes("Xpath")

【问题讨论】:

【参考方案1】:

我认为,如果您尝试使用 xml.domxml.etree.ElementTree 软件包之一,您的运气会更好。 ElementTree 有一些有限的 xpath 支持,所以如果你习惯这样做,它可能是最好的选择。

【讨论】:

我在这里查看:bit.ly/baRkvP,但我没有看到不同 XML DOM 实现的列表。您能否指出一个或多个可用 xml.dom pkgs 列表(并希望包括一些示例链接)? 您链接到的手册中接下来的两章涵盖了xml.dom.minidom[1] 和xml.dom.pulldom[2]。目前我想不出任何示例,但是如果您习惯于使用 DOM 操作,这应该是相当自然的。也就是说,如果它可以满足您的需求,我推荐 ElementTree。 [1]:docs.python.org/library/xml.dom.minidom.html [2]:docs.python.org/library/xml.dom.pulldom.html

以上是关于使用 Expat 在 Python 中解析 XML的主要内容,如果未能解决你的问题,请参考以下文章

PHP XML Expat 解析器

Expat Parser解析xml文件

2017.8.17

php 解析xml 的四种方法

php 解析xml 的四种方法(转)

PHP 和 XML: 使用expat函数