如何输出XML实体引用

时间:2011-11-02 19:32:43

标签: python xml elementtree

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

通常'&'被转义为&因为'&'用于声明实体引用。但是,我确实想写一个实体引用。例如,我想编写一个包含实体引用&manifestName;

的XML文件
>>> from xml.etree.ElementTree import Element, tostring
>>> manifest = Element('manifest')
>>> manifest.text = '&manifestName;'
>>> tostring(manifest)

返回转义的&符号:

'<manifest>&amp;manifestName;</manifest>'

所需的XML将是:

'<manifest>&manifestName;</manifest>'

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

1 个答案:

答案 0 :(得分:0)

我决定选择一个相对可口的黑客。在文中,我使用&&表示转义&。 ElementTree将其转换为&amp;&amp;。最后,我只是简单地替换它:

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

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

'<manifest>&manifestName;</manifest>'