之前取消转义即可。
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 > 1</foobar>
但实际上它是:
<?xml version="1.0" ?><foobar>2 &gt; 1</foobar>
如何阻止minidom转义已经转义的序列?在我的应用程序中,文本是从(非xml)文档中读取的,所以我不能简单地写text = '2 > 1'
。
插入前不转义:
from xml.sax.saxutils import unescape
text = doc.createTextNode(unescape(text))
转义在写入时发生,不能禁用,也不应该禁用。有时您希望在XML中包含文字>
文本,如果您这样做,则应该为您正确转义。如果输入是XML转义的,只需在插入