我有一个类似于以下(简化)的XML:
<file id="file-10">
<clip>1</clip>
<timecode>1:00:00:00</timecode>
</file>
<file id="file-11">
<clip>2</clip>
<timecode>2:00:00:00</timecode>
</file>我试图使用ElementTree搜索具有特定id属性的文件元素。这样做是可行的:
correctfile = root.find('file[@id="file-10"]')这并不意味着:
fileid = 'file-10'
correctfile = root.find('file[@id=fileid]')我得到:
SyntaxError:无效谓词
这是ElementTree的限制吗?我应该用别的东西吗?
发布于 2015-12-12 05:08:36
"SyntaxError:无效谓词“
file[@id=fileid]是一个无效的XPath表达式,因为您忽略了属性值周围的引号。如果将引号放在fileid:file[@id="fileid"]周围,表达式将变得有效,但它不会找到任何内容,因为它将搜索id等于"fileid“字符串的file元素。
使用字符串格式将fileid值插入XPath表达式:
root.find('file[@id="{value}"]'.format(value=fileid))https://stackoverflow.com/questions/34236514
复制相似问题