好的文案网站,动漫制作专业专升本对应的专业,wordpress可以建官网嘛,什么网站必须要flashQT之xml文件的读写 简介用法举例 简介
QT的QDomDocument、QDomElement、QDomNode是Qt XML模块中的三个类#xff0c;用于解析和操作XML文档。
1#xff09;QDomDocument类#xff1a; QDomDocument类表示整个XML文档。它提供了解析XML文档的方法#xff0c;如setContent(… QT之xml文件的读写 简介用法举例 简介
QT的QDomDocument、QDomElement、QDomNode是Qt XML模块中的三个类用于解析和操作XML文档。
1QDomDocument类 QDomDocument类表示整个XML文档。它提供了解析XML文档的方法如setContent()和setContent()以及生成XML文档的方法如toByteArray()和toString()。 QDomDocument类还包括一些常用的操作如创建新元素createElement()、创建新文本节点createTextNode()和创建新注释createComment()。
2. QDomElement类 QDomElement类表示XML文档中的一个元素。它提供了获取和设置元素名称tagName()和setTagName()、获取和设置元素属性attribute()和setAttribute()以及获取和设置元素文本内容text()和setText()的方法。
QDomElement类还包括一些用于遍历和操作子元素的方法如firstChildElement()、lastChildElement()、nextElementSibling()和previousElementSibling()。这些方法可以方便地遍历元素的子元素和兄弟元素。
3. QDomNode类 QDomNode类表示XML文档中的一个节点可以是元素、文本节点或注释等。它提供了一些基本的方法如获取节点类型nodeType()、获取节点名称nodeName()和获取节点值nodeValue()。
QDomNode类还包括一些用于遍历节点的方法如firstChild()、lastChild()、nextSibling()和previousSibling()。这些方法可以方便地遍历节点的子节点和兄弟节点。
用法举例
首先我们假设有一个名为example.xml的XML文件其内容如下
?xml version1.0 encodingUTF-8?
data nameJohn Doe/name age30/age emailjohndoeexample.com/email
/data1读取XML文件
#include QCoreApplication
#include QFile
#include QDomDocument
#include QDomElement
#include QDebug int main(int argc, char *argv[])
{ QCoreApplication a(argc, argv); QString fileName example.xml; QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { qDebug() Failed to open file: fileName; return -1; } QDomDocument doc; if (!doc.setContent(file)) { qDebug() Failed to parse XML file: fileName; file.close(); return -1; } file.close(); QDomElement root doc.documentElement(); QDomNode n root.firstChild(); while (!n.isNull()) { QDomElement e n.toElement(); if (!e.isNull()) { qDebug() e.tagName() : e.text(); } n n.nextSibling(); // 获取下一个子节点 } return 0;
}2写入XML文件
#include QCoreApplication
#include QFile
#include QDomDocument
#include QDomElement
#include QTextStream
#include QDebug int main(int argc, char *argv[])
{ QCoreApplication a(argc, argv); QString fileName output.xml; QDomDocument doc; QDomElement root doc.createElement(data); doc.appendChild(root); QDomElement nameElement doc.createElement(name); nameElement.appendChild(doc.createTextNode(John Doe)); root.appendChild(nameElement); QDomElement ageElement doc.createElement(age); ageElement.appendChild(doc.createTextNode(30)); root.appendChild(ageElement); QDomElement emailElement doc.createElement(email); emailElement.appendChild(doc.createTextNode(johndoeexample.com)); root.appendChild(emailElement); QFile file(fileName); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { qDebug() Failed to open file: fileName; return -1; } QTextStream stream(file); doc.save(stream, 4); // 设置缩进为4个空格 file.close(); return 0;
}