我有一个变量 ele。我试图将一个子节点附加到 ele 上,该节点的标签中包含 namespace 前缀(称为 style)。 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
我在这里缺少什么?
最佳答案
etree.fromstring('<style:style />')
抛出错误,因为 <style:style />
是一个小 XML 文档,不是 namespace-well-formed .
如果您想将 namespace 作为 fromstring()
的参数提供,则必须在文档中声明该 namespace 。 :
etree.fromstring('<style:style xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" />')
关于python - 使用带有 lxml 前缀的 fromstring(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24876855/