如题所示,setContent的值要关联file,此时要看打开file时,使用的是何种打开方式:
-
file.open(QIODevice::ReadOnly)
正常,只读;
-
file.open(QIODevice::WriteOnly)
持续返回FALSE,只写无法读;
同时,经过测试发现,如果使用ReadWrite读写方法,会重复写上一段话。
总结:对C++中文件的打开方式不熟悉,待进一步总结提高。
1、XML 文件结构不完整,比如:缺少 "<"等;
2、创建 XML 文件时,createElement 传 tagName 参数存在空格,这里不可存在空格,如果存在空格,可正常写入,但是读取时会出现错误。
document
.
set
Content
(&file);
set
Content
总是失败.最后找到错误的原因了.是因为元素的标签为中文了.调用这个函数的时候不能正确解析中文 .所以还是乖乖用英文吧
那怎么办呢,标签必须用英文,但是属性可以用中文,所以要想存放中文信息就放在属性中存放吧
可能的错误:
1)使用Q
Dom
Document
创建根节点时,使用了诸如:rootNode.
set
Attribute(“ProjName”,fileName);或者rootNode.
set
Attribute(“Version”,”2.0”);等等,根节点不能有属性。
2)createElement传tagName参...
1、首先要知道XML文件格式,必须要有一个根节点,如果没有访问会出错
2、相对路径、绝对路径、资源路径都行,如果你路径不对,你Qfile是读取不了文件的,到不了doc.
set
Content
(&file)
3、创建头的时候要格式相同(“xml”,"version=“1.0” encoding=“UTF-8"”);
看到有些人说头的两个问好两边不能有空格,我这边的实际操作没有这个
问题
,可以尝试下
QT
XML解析
set
Content
报错处理
使用
QT
解析XML文件,if (!doc.
set
Content
(&amp;file, true, &amp;errorStr, &amp;errorLine, &amp;errorColumn))老是出现error,
试过网上的绝对路径,相对路径,使用stream方式,等都不行。
无奈需要自己debug,测试发现使用Doc方式可以成功writ...
Q
Dom
Document
doc;
1).创建根节点:Q
Dom
Element root = doc.
document
Element("rootName " );
2).创建元素节点:Q
Dom
Element element = doc.createElement_x("nodeName");
3).添加元素节点到根节点:root. appendChild(element);
4).创建元素文
QFile类介绍
QIODevice 类是
Qt
中所有 I/O 设备的基础接口类,为诸如 QFile、QBuffer 和
QT
cpSocket 等支持读/写数据块的设备提供了一个抽象接口。。
QFile类提供一个用于读/写文件的接口,它是一个可以用来读写文本文件、二进制文件和
Qt
资源的 I/O 设备。
QFile可以单独使用,也可以和
QT
extStream 或者QDataStream 一起使用。
一个文件使用open()打开,使用close()关闭,使用flush()刷新。
写入数据到txt文件(实例代码
软件提示“setup has detected that your computer needs to be rebooted before continuing”相关信息解决方法