【问题标题】:How to output XML entity references如何输出 XML 实体引用
【发布时间】:2011-12-20 15:19:55
【问题描述】:

我正在使用 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>'

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

【问题讨论】:

标签: python xml elementtree


【解决方案1】:

我决定采用一个相对可口的 hack。在文中,我使用&amp;amp;&amp;amp; 来表示转义的&amp;。 ElementTree 将其转换为&amp;amp;&amp;amp;。最后,我只是对其进行了字符串替换:

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-03-10
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多