gpt4 book ai didi

c++ - Qt 中不一致的 XML 符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:07 28 4
gpt4 key购买 nike

我正在使用 Qt 和 C++ 来读/写 XML 文件。虽然我只使用 Qt 类,但有一个奇怪的行为。

QDomDocument document;

QDomElement element = document.createElement( "QString" );

QDomText textNode = document.createTextNode( "" ); // Empty string.
element.appendChild( textNode );

有时 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());
}

这始终如一地产生

<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"/>

仅当元素没有内容时才会生成短标签版本,当有内容时会生成完整的打开+关闭版本,即使那是带有空字符串的 QDomText

关于c++ - Qt 中不一致的 XML 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33690295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com