qt 下读写自定义xml 文件
时间: 2024-04-13 07:31:06 浏览: 178
在Qt中,你可以使用QXmlStreamReader和QXmlStreamWriter类来读取和写入自定义的XML文件。下面是一个简单的示例演示了如何在Qt中读取和写入自定义的XML文件:
```cpp
#include <QFile>
#include <QXmlStreamReader>
#include <QXmlStreamWriter>
#include <QDebug>
// 读取XML文件
void readXmlFile(const QString& fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << "Failed to open file for reading";
return;
}
QXmlStreamReader xmlReader(&file);
while (!xmlReader.atEnd() && !xmlReader.hasError())
{
QXmlStreamReader::TokenType token = xmlReader.readNext();
if (token == QXmlStreamReader::StartElement)
{
if (xmlReader.name() == "patient")
{
QString id = xmlReader.readElementText();
qDebug() << "Patient ID:" << id;
}
else if (xmlReader.name() == "name")
{
QString name = xmlReader.readElementText();
qDebug() << "Patient Name:" << name;
}
// Add more conditions for other elements in your XML structure
}
}
if (xmlReader.hasError())
{
qDebug() << "XML Error:" << xmlReader.errorString();
}
file.close();
}
// 写入XML文件
void writeXmlFile(const QString& fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Failed to open file for writing";
return;
}
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("medical_data");
xmlWriter.writeStartElement("patient");
xmlWriter.writeTextElement("id", "123456789");
xmlWriter.writeTextElement("name", "John Doe");
// Add more elements for other data in your XML structure
xmlWriter.writeEndElement();
// Add more elements and nested structures as needed
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
int main()
{
QString fileName = "medical_data.xml";
// 读取XML文件
readXmlFile(fileName);
// 写入XML文件
writeXmlFile(fileName);
return 0;
}
```
在这个示例中,readXmlFile函数演示了如何读取自定义的XML文件。你可以根据XML的结构,使用QXmlStreamReader的方法来读取不同的元素和属性。
writeXmlFile函数演示了如何写入自定义的XML文件。你可以使用QXmlStreamWriter的方法来编写XML的结构和数据。
记得在使用这些方法之前,要添加相关的Qt模块到你的.pro文件中,例如:
```
QT += core xml
```
这样就可以在Qt中读取和写入自定义的XML文件了。
阅读全文