QDomDocument::createTextNode 添加换行符,文本没有缩进
时间: 2024-04-12 14:27:26 浏览: 154
对不起,我之前的回答有误。QDomDocument::createTextNode方法只是创建一个文本节点,它不会自动添加缩进或换行符。如果您希望在生成的XML中添加缩进和换行,您需要手动处理。
以下是一个示例代码片段,展示如何在QDomDocument中创建带有缩进和换行的XML文档:
```cpp
#include <QDomDocument>
#include <QDomElement>
#include <QTextStream>
void appendIndentedText(QDomDocument& doc, QDomElement& parent, const QString& text, int indentLevel)
{
QString indent = QString(indentLevel * 4, ' '); // 4个空格作为缩进
QDomText textNode = doc.createTextNode("\n" + indent + text + "\n" + indent); // 在文本前后添加换行和缩进
parent.appendChild(textNode);
}
int main()
{
QDomDocument doc;
// 创建根元素
QDomElement root = doc.createElement("root");
doc.appendChild(root);
// 添加带有缩进和换行的文本节点
appendIndentedText(doc, root, "Hello", 1);
appendIndentedText(doc, root, "World", 1);
// 输出XML内容
QTextStream stream(stdout);
doc.save(stream, 4); // 使用缩进格式保存XML内容
return 0;
}
```
在上述示例中,我们定义了一个名为appendIndentedText的辅助函数,该函数将带有缩进和换行的文本节点添加到指定的元素中。通过在文本前后添加换行符和缩进空格,可以实现所需的格式。
希望这个示例对您有所帮助!如果您还有其他问题,请随时提问。
阅读全文