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