在Python中使用XPath查询XML
在用Python处理XML文件的时候,能不能用XPath查询呢?我现在用的是minidom这个库,但它不支持这个功能。有没有其他的模块可以做到这一点?
3 个回答
3
ElementTree 是一个包含在 Python 中的库。在 2.6 及更早的版本中,它的 xpath 功能比较弱,但在 2.7 及以上版本中有了很大的提升:
import xml.etree.ElementTree as ET
root = ET.parse(filename)
result = ''
# How to make decisions based on attributes even in 2.6
for elem in root.findall('.//child/grandchild'):
if elem.attrib.get('name') == 'foo':
result = elem.text
break
11
http://docs.python.org/library/xml.etree.elementtree.html
etree支持XPath查询,这和lxml一样。
etree是Python自带的库,但lxml的速度更快。