ElementTree和使用NameSpaces查找

时间:2014-03-31 14:45:34

标签: python xml elementtree

我有一个有效的XHTML文件。当我做的时候

import xml.etree.ElementTree as ET
print ET._namespace_map

它列出:

'http://www.w3.org/1999/xhtml': 'html'

当我这样做时:

root.find('{http://www.w3.org/1999/xhtml}head')

它找到了:

<Element '{http://www.w3.org/1999/xhtml}head' at 0x104647168>

但是当我这样做时:

root.find('html:head')
抱怨道:

SyntaxError: prefix 'html' not found in prefix map

是否可以使用find语法找到ns:element的名称间隔元素?

1 个答案:

答案 0 :(得分:4)

您应该指定namespaces参数:

namespaces = {'html': 'http://www.w3.org/1999/xhtml'}
root.find('html:head', namespaces=namespaces)

另见: