防止minidom逃离已经逃脱的特克斯

2024-10-01 07:51:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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文件内容如下:

^{pr2}$

但事实上它是这样写的:

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

我怎样才能阻止minidom逃离一个已经逃过的序列?在我的应用程序中,文本是从(非xml)文档中读取的,所以我不能简单地写text = '2 > 1'。在


Tags: textimportgtnonedocfooxmldom
1条回答
网友
1楼 · 发布于 2024-10-01 07:51:26

插入前取消浏览:

from xml.sax.saxutils import unescape

text = doc.createTextNode(unescape(text))

转义发生在书写时,不能禁用,也不应该禁用。有时,您希望在XML中包含文本&gt;文本,如果这样做的话,应该对其进行适当的转义。如果您的输入是XML转义的,只需在插入之前取消转义。在

相关问题 更多 >