将lxml.objectify元素转换回XML

6 投票
2 回答
2937 浏览
提问于 2025-04-17 12:47

我使用 lxml.objectify 来轻松解析和处理 XML 文件。出于审计的需要,我必须将一个派生对象和该元素的原始 XML 代码一起保存。

root = lxml.objectify.fromstring(self.get_xml_data())

for i, elem in enumerate(root.elements):
    # create new database entry based on elem
    elem_obj.source_code = turn_elem_into_xml(elem)

我该如何实现 turn_elem_into_xml 呢?

2 个回答

1

lxml.objectify 的元素其实还是普通的元素。你可以像打印其他元素一样打印它们,或者使用 lxml.etree.tostring 把它们转换成字符串。

9

lxml.etree.tostring 是一个函数,用于将一个 XML 或 HTML 元素转换成字符串。简单来说,就是把你在代码中创建的 XML 或 HTML 内容变成可以直接显示的文本。

In [21]: r = lxml.objectify.fromstring('<root><item>1</item><item>2</item></root>')

In [22]: lxml.etree.tostring(r.item)
Out[22]: '<item>1</item>'

撰写回答