我想用这种结构来评估XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<Service_name version="3.3.0">
...
其中Service_name
标记名称不是常量字符串,而version
属性是必需的。
为此目的,这个xpath表达式:/*[1]/@version
可以用任何xpath处理器进行评估,但我无法用Python ElementTree来计算。
例如:
import xml.etree.ElementTree as ET
doc = ET.parse('sample.xml')
v = find('/*[1]/@version').text
提出KeyError: '@'
我尝试了类似的组合,但没有一个有效。
如何使用ElementTree从上面的示例文档中获取版本号?
答案 0 :(得分:2)
ElementTree使用自己的路径语法,它或多或少是xpath的一个子集。如果您希望ElementTree兼容库具有完整的xpath支持,请尝试lxml。
答案 1 :(得分:0)
虽然它不是XPath作为问题名称,但这似乎是一种方式:
doc.getroot().get('version')