Skip to main content
 首页 » 编程设计

Python之从 XML 解析单行

2025年05月04日10yjmyzz

希望这对那些有经验的人来说是一个快速的答案。我有一个包含 URL 的 XML 文件,我想从 XML 中获取 URL,然后将其输入到我编写的下载程序脚本中。我唯一的问题是我似乎无法正确解析 XML 中的 url。这是它的样子:

<program new-version="1.1.1.1" name="ProgramName"> 
<download-url value="http://website.com/file.exe"/> 
</program> 

提前致谢!

请您参考如下方法:

>>> code = '''<program new-version="1.1.1.1" name="ProgramName"> 
... <download-url value="http://website.com/file.exe"/> 
... </program>''' 

与 lxml :

>>> import lxml.etree 
>>> lxml.etree.fromstring(code).xpath('//download-url/@value')[0] 
'http://website.com/file.exe' 

使用内置的 xml.etree.ElementTree :

>>> import xml.etree.ElementTree 
>>> doc = xml.etree.ElementTree.fromstring(code) 
>>> doc.find('.//download-url').attrib['value'] 
'http://website.com/file.exe' 

使用内置的 xml.dom.minidom :

>>> import xml.dom.minidom 
>>> doc = xml.dom.minidom.parseString(code) 
>>> doc.getElementsByTagName('download-url')[0].getAttribute('value') 
u'http://website.com/file.exe' 

你选择哪一个完全取决于你。 lxml 需要安装,但它是最快且功能最丰富的库。 xml.etree.ElementTree 有一个时髦的接口(interface),它的 XPath 支持是有限的(取决于 python 标准库的版本)。 xml.dom.minidom 不支持 xpath 并且速度较慢,但​​实现了跨平台 DOM .