首页 > 解决方案 > 创建 !ENTITY 定义

问题描述

使用 python lxml 如何创建一个 !ENTITY 定义,注意我想创建而不是解析。

那就是我想创建一些包含另一个文件的 xml,因此需要一个 !ENTITY 定义

标签: pythonxmllxml

解决方案


您应该能够使用具有 ENTITY 声明的内部子集作为字符串创建 doctype 声明,并在序列化时传递该声明(使用 tostring() 或 write())。

例子...

from lxml import etree

doctype = """<!DOCTYPE doc [
<!ENTITY ent SYSTEM "another_doc.xml">
]>"""

doc = etree.Element("doc")
ent = etree.Entity("ent")
doc.append(ent)

print(etree.tostring(doc, doctype=doctype).decode())

印刷...

<!DOCTYPE doc [
<!ENTITY ent SYSTEM "another_doc.xml">
]>
<doc>&ent;</doc>

推荐阅读