0

这是没有将任何文本元素写入 xml 文件的代码:

QString filename = QFileDialog::getSaveFileName(this, "Vytvorenie databázy", QDir::currentPath(), "XML file(*.xml)");
QFile file(filename);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.setAutoFormattingIndent(4);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("CARS");
//
//
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();

这是输出:

<?xml version="1.0" encoding="UTF-8"?>
<CARS/>

这是想要的输出:

<?xml version="1.0" encoding="UTF-8"?>
<CARS>
</CARS>

为什么不写任何附加元素时不写根元素的开始?即使没有添加更多元素,有没有办法明确告诉作者写它?同样的事情发生在 C# 中。

4

1 回答 1

0

正如评论者所写,它看起来像是 QXmlStreamWriter 的内部实现,这并不重要,因为两者在语义上是等效的,并且“每个解析器都应该以相同的方式解释”。

于 2021-01-01T10:57:03.600 回答