我使用Qt和C++来读/写XML文件.虽然我只使用Qt类,但有一种奇怪的行为.
QDomDocument document;
QDomElement element = document.createElement( "QString" );
QDomText textNode = document.createTextNode( "" ); // Empty string.
element.appendChild( textNode );
Run Code Online (Sandbox Code Playgroud)
有时,XML文件中的结果<QString/>有时会出现<QString></QString>.有谁知道为什么会这样?
由于您没有提供MCVE,我写道:
#include <QDebug>
#include <QDomDocument>
#include <QDomElement>
#include <QDomText>
int main()
{
QDomDocument document;
for (int i = 0; i < 15; ++i) {
QDomElement element = document.createElement("QString");
element.setAttribute("n", i);
if (i%2)
element.appendChild(document.createTextNode(QString()));
document.appendChild(element);
}
qDebug() << qPrintable(document.toString());
}
Run Code Online (Sandbox Code Playgroud)
这始终如一地产生
<QString n="0"/>
<QString n="1"></QString>
<QString n="2"/>
<QString n="3"></QString>
<QString n="4"/>
<QString n="5"></QString>
<QString n="6"/>
<QString n="7"></QString>
<QString n="8"/>
<QString n="9"></QString>
<QString n="10"/>
<QString n="11"></QString>
<QString n="12"/>
<QString n="13"></QString>
<QString n="14"/>
Run Code Online (Sandbox Code Playgroud)
仅当元素没有内容时才会生成短标签版本,而当元素有内容时才会生成完整的打开+关闭,即使这是一个QDomText空字符串。
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |