我正在使用下面的python代码进行xpath属性查找,但收到错误:
selector.append(ops [token [0]](next,token))
KeyError:'@'
只使用没有额外模块的starndard python2.7版本
xml文件如下所示:
<rule-set>
<rule name="firstRule" salience="3" />
<rule name="secondRule" salience="5" />
</rule-set>
我的代码如下:
import xml.etree.ElementTree as ET
fp = open("./rules.xml", "r")
elementTree = ET.parse(fp)
e = elementTree.findall('rule') #looking up element, this works
for i in e:
print i.attrib
e = elementTree.findall('rule/@salience') #directly looking up attribute fails
for i in e:
print i
print 'all done'
我有点困惑,...我认为xpath1.0支持xpath查找,或者我做错了什么?
答案 0 :(得分:0)
此模块为XPath表达式提供有限的支持,以便在树中定位元素。目标是支持缩写语法的一小部分;完整的XPath引擎超出了模块的范围。
xml.etree
模块不允许直接使用xpath syntax选择属性,只选择具有特定属性的元素。