我想使用 Python 的 ElementTree API(和 lxml)编写一个简单的 SOAP 响应。编写 SOAP 响应涉及使用名称空间编写元素文本(值)。例如,请单击此处。
用命名空间编写元素并不是什么大问题,但有些元素包含具有命名空间的文本。
我想创建类似的东西:
<pleh:a xmlns:pleh="http://pleh">pleh:x</pleh:a>
所以“自然”我这样做:
try:
from lxml import etree
except ImportError:
import xml.etree.ElementTree as etree
pleh = 'http://pleh'
etree.register_namespace('pleh', pleh)
a = etree.Element('{%s}a' % pleh)
a.text = '{%s}x' % pleh
print(etree.tostring(a))
但这打印<pleh:a xmlns:pleh="http://pleh">{http://pleh}x</pleh:a>
我在这里想念什么?