以下代码行给我带来了问题:
{% if xml.findall('count("routes/route//process")') > 0 %}
我收到此错误消息:
...
{% if xml.findall('count("routes/route//process")') > 0 %}
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 390, in findall
return ElementPath.findall(self, path, namespaces)
File "/usr/lib/python2.7/xml/etree/ElementPath.py", line 293, in findall
return list(iterfind(elem, path, namespaces))
File "/usr/lib/python2.7/xml/etree/ElementPath.py", line 263, in iterfind
selector.append(ops[token[0]](next, token))
KeyError: '('
有什么建议吗?
答案 0 :(得分:2)
ElementTree只有limited support for XPath expressions。 count()
不支持。
您必须切换到lxml library;与ElementTree兼容的实现,支持所有XPath 1.0。
或者,测试直接返回的元素数量:
{% if xml.findall('routes/route//process') %}
作为非空结果列表在布尔上下文中为true-thy。