python - 使用带有 lxml 前缀的 fromstring()

标签 python lxml elementtree

我有一个变量 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/

相关文章:

python - 如何在 Kivy 文本输入中水平居中文本?

python - 在 numpy 二维数组上 - 当 N 改变行时如何将每行中的最后 N 个数组元素设置为零

xpath - 使用 lxml 和 requests 从 XPath 返回 utf-8

python - 如何删除 etree python 中的元素?

python - 使用 Python 按属性查找 ElementTree 中的所有元素

python - 在 Python ElementTree 中,如何判断元素是否为注释?

python - 获取 openerp 中事件过滤器下上下文中的所有 ID

python - 将用户输入附加到循环中的列表

python - lxml: undefined variable etree

python - 装饰 lxml.etree._Element 方法