Elementtree API 尽可能避免使用名称空间前缀,而是部署真正的名称空间(URI) :
>>> xhtml = etree.Element("{http://www.w3.org/1999/xhtml}html")
>>> body = etree.SubElement(xhtml, "{http://www.w3.org/1999/xhtml}body")
>>> body.text = "Hello World"
>>> print(etree.tostring(xhtml, pretty_print=True))
<html:html xmlns:html="http://www.w3.org/1999/xhtml">
<html:body>Hello World</html:body>
</html:html>
Elementtree 最初使用的符号是由 James Clark 提出的。 它的主要优点是为标记提供通用限定名,而不管文档中是否使用或定义了任何前缀。 通过移除前缀的间接方向,可以使名称空间感知的代码更加清晰,也更容易正确。
从示例中可以看到,只有在序列化结果时,前缀才变得重要。 但是,由于名称空间很长,上面的代码看起来有点冗