我有一个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有错误?
最佳答案
从QDomDocument's documentation:
这样,您就不会丢失仅空白数据(示例在C++中):
QXmlSimpleReader reader;
QXmlInputSource source;
QDomDocument dom;
source.setData(QString("<mtext> </mtext>"));
dom.setContent(&source, &reader);
关于xml - 为什么Qt在加载XML文件时会丢失我的瘦空间unicode字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10968940/