如何输出 XML 实体引用

Joh*_*hee 5 python xml elementtree

我正在使用 Python xml.etree.ElementTree 来输出 XML。我想用实体引用输出它,解析 XML 时将替换该实体引用。

通常“&”会被转义,&因为“&”用于声明实体引用。不过,我确实想写一个实体参考。例如,我想编写一个包含实体引用的 XML 文件&manifestName;

>>> from xml.etree.ElementTree import Element, tostring
>>> manifest = Element('manifest')
>>> manifest.text = '&manifestName;'
>>> tostring(manifest)
Run Code Online (Sandbox Code Playgroud)

它返回一个转义的&符号:

'<manifest>&amp;manifestName;</manifest>'
Run Code Online (Sandbox Code Playgroud)

所需的 XML 为:

'<manifest>&manifestName;</manifest>'
Run Code Online (Sandbox Code Playgroud)

我尝试过各种转义技巧,例如,,,&#38;但它们不起作用。它们包含的 & 符号始终呈现为。\&&&&amp;

Joh*_*hee 1

我决定采用一种相对可口的方法。在文中,我用来&&指转义的&. ElementTree 将其转换为&amp;&amp;. 最后,我简单地对其进行了字符串替换:

>>> from xml.etree.ElementTree import Element, tostring
>>> manifest = Element('manifest')
>>> manifest.text = '&&manifestName;'
>>> tostring(manifest).replace('&amp;&amp;', '&')
Run Code Online (Sandbox Code Playgroud)

结果是我想要的实体引用:

'<manifest>&manifestName;</manifest>'
Run Code Online (Sandbox Code Playgroud)