我有一个 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 有错误?