我有一个变量ele。我正在尝试将子节点附加到其标记中包含名称空间前缀(称为样式)的ele。 ele似乎知道这个前缀,如下所示:
print(ele.nsmap['style'])
输出
urn:oasis:names:tc:opendocument:xmlns:style:1.0
但是当我尝试运行时
ele.append(etree.fromstring('<style:style />'))
我收到错误
lxml.etree.XMLSyntaxError: Namespace prefix style on style is not defined
我在这里缺少什么?
答案 0 :(得分:1)
etree.fromstring('<style:style />')
会引发错误,因为<style:style />
是一个非namespace-well-formed的小型XML文档。
如果要将其作为fromstring()
的参数提供,则必须在文档中声明命名空间:
etree.fromstring('<style:style xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" />')