我有一个XML文档,其中一部分包含以下内容:
<math display='block'><mtext> </mtext></math>
如果在Qt中载入该代码(特别是在我发现这个问题的Qt MathML小部件中),QDomDocument对象会丢失Unicode的细空格字符(U+2009)。以下Python示例代码演示了这个问题:
from PyQt4.QtXml import *
d = QDomDocument()
d.setContent("<math display='block'><mtext> </mtext></math>")
print repr(unicode(d.toString()))
这段代码的输出结果是:
u'<math display="block">\n <mtext/>\n</math>\n'
在细间距后插入额外的非空格字符可以防止细间距丢失。
这是我的错误,一个XML特性还是Qt有一个bug?
<math display='block'><mtext xml:space="preserve"> </mtext></math>
- Roger_SsetContent()
方法可以解决问题。 - user362638