在写xml文件判断是否有节点存在是,一直进不去,而且打断点路径也没有错
QDomDocument doc;
if (!doc.setContent(&file))
{
file.close();
return ;
}
出现该错误的原因:主要是编码的问题,一定要确定整个文件的编码包括文件名的编码一致为utf-8。
解决办法:
QFile file(fileName);
if(file.open(QFile::ReadWrite))
{
QDomDocument doc;
QString error =0;
int row = 0;
int column = 0;
if(!doc.setContent(&file, false, &error, &row, &column))
{
qDebug()<<error<<row<<column;
}
}
用ie浏览器打开出现如下错误。
使用QXmlStreamWriter创建XML文件。
QDomDocument doc;
QFile file("userdata.xml");
if(!file.open(QIODevice::WriteOnly|QIODevice::Text))
return;
//采用QXmlStreamWriter 类来创建xml文件
QXmlStreamWriter writer(&file);
writer.setAutoFormatting(true); // 自动格式化
//QDomProcessingInstruction xmlInstruction = doc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");//"xml","version=\"1.0\"encoding=\"UTF-8\"standalone=\"yes\""
// doc.appendChild(xmlInstruction);
//用这个替代声明
writer.writeStartDocument(); // 开始文档(XML 声明,)系统会自动定义xml的版本
writer.writeEndDocument(); // 结束文档
file.close(); // 关闭文件
if(!file.open(QIODevice::WriteOnly|QIODevice::Text))// 重新打开文件
return;
//添加根节点,采用QDomDocument类来添加节点
QDomElement root=doc.createElement(QString::fromLocal8Bit("用户使用记录"));
doc.appendChild(root);
//...直接添加其它节点
QTextStream out_stream(&file);
doc.save(out_stream,4); //缩进4格
file.close(); // 关闭文件
建议:使用QString来写,绝对不要使用char*,否则报的错,需要找很久的原因。使用纯qt做
解析xml时出现错误:"error occurred while parsing element" 3 3
表示节点的第一位不能是数字
xml编写参考文档