首页 文章

如何输出XML实体引用

提问于
浏览
1

我使用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

    我决定选择一个相对可口的黑客 . 在文中,我使用 && 表示转义的 & . ElementTree将其转换为 &amp;&amp; . 最后,我只是对它进行字符串替换:

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

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

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

相关问题