1、使用QDomDocument创建根节点时,使用了诸如:rootNode.setAttribute(“ProjName”,fileName);或者rootNode.setAttribute(“Version”,“2.0”);等等,
根节点不能带属性
Q
Dom
Document
::
set
Content
返回值为FALSE的问题
如题所示,
set
Content
的值要关联file,此时要看打开file时,
使用
的是何种打开方式:
file.open(QIODevice::ReadOnly)
正常,只读;
file.open(QIODevice::WriteOnly)
持续返回FALSE,只写无法读;
同时,经过测试发现,如果
使用
ReadWrite读写方法,会重复写上一段话。
总结:对C++中文件的打开方式不熟悉,待进一步总结提高。
Q
Dom
Document
是
Qt
中用于
解析
和创建
XML
文档的类。以下是一个简单的示例代码,演示如何
使用
Q
Dom
Document
类
解析
XML文件
:
```cpp
#include <QFile>
#include <
Qt
Xml
>
int main()
QFile file("example.
xml
");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return -1;
Q
Dom
Document
doc;
if (!doc.
set
Content
(&file))
file.close();
return -1;
Q
Dom
Element root = doc.
document
Element();
Q
Dom
NodeList books = root.elementsByTagName("book");
for (int i = 0; i < books.count(); i++)
Q
Dom
Node book = books.at(i);
if (book.isElement())
Q
Dom
Element elem = book.toElement();
QString title = elem.attribute("title");
QString author = elem.attribute("author");
qDebug() << "Title: " << title << "Author: " << author;
file.close();
return 0;
在这个示例中,我们打开一个名为"example.
xml
"的文件,然后
使用
Q
Dom
Document
类将其内容读入到内存中。接下来,我们获取
XML
文档的根元素,然后遍历其子元素中所有名为"book"的元素,并从中获取"title"和"author"属性。最后,我们关闭文件并返回。
请注意,Q
Dom
Document
类是基于
DOM
模型的
解析
器,它会将整个
XML
文档加载到内存中,因此适用于较小的
XML
文档。如果
XML
文档非常大,建议
使用
SAX模型的
解析
器,如Q
Xml
StreamReader类。