防止minidom转义已转义的文本


import xml.dom.minidom
text='2 > 1'
impl = xml.dom.minidom.getDOMImplementation()
doc = impl.createDocument(None, "foobar", None)
docElem = doc.documentElement
text = doc.createTextNode(text)
docElem.appendChild(text)
f=open('foo.xml', 'w')
doc.writexml(f)
f.close()

我希望foo.xml的格式如下:

<?xml version="1.0" ?><foobar>2 &gt; 1</foobar>

但实际上它是:

<?xml version="1.0" ?><foobar>2 &amp;gt; 1</foobar>

如何阻止minidom转义已经转义的序列?在我的应用程序中,文本是从(非xml)文档中读取的,所以我不能简单地写text = '2 > 1'

插入前不转义:

from xml.sax.saxutils import unescape
text = doc.createTextNode(unescape(text))

转义在写入时发生,不能禁用,也不应该禁用。有时您希望在XML中包含文字&gt;文本,如果您这样做,则应该为您正确转义。如果输入是XML转义的,只需在插入

之前取消转义即可。

相关内容

  • 没有找到相关文章

最新更新