我正在使用Python xml.etree.ElementTree来输出XML。我想用实体引用输出它,在解析XML时将替换它。
通常'&'被转义为&
因为'&'用于声明实体引用。但是,我确实想写一个实体引用。例如,我想编写一个包含实体引用&manifestName;
:
>>> from xml.etree.ElementTree import Element, tostring
>>> manifest = Element('manifest')
>>> manifest.text = '&manifestName;'
>>> tostring(manifest)
返回转义的&符号:
'<manifest>&manifestName;</manifest>'
所需的XML将是:
'<manifest>&manifestName;</manifest>'
我尝试了各种转义技巧,例如&
,\&
,&&
,但它们不起作用。它们包含的&符号始终显示为&
。
答案 0 :(得分:0)
我决定选择一个相对可口的黑客。在文中,我使用&&
表示转义&
。 ElementTree将其转换为&&
。最后,我只是简单地替换它:
>>> from xml.etree.ElementTree import Element, tostring
>>> manifest = Element('manifest')
>>> manifest.text = '&&manifestName;'
>>> tostring(manifest).replace('&&', '&')
结果是我想要的实体引用:
'<manifest>&manifestName;</manifest>'