QT 读取XML文件失败,请大神帮忙
学习QT读取XML文件过程中,出现如下问题
parse xml error : "unexpected end of file" line 1 col 1
还请高手帮忙解决。
下面是我的工程文件
ReadXML.pro文件
#-------------------------------------------------
#
# Project created by QtCreator 2016-04-15T10:25:36
#
#-------------------------------------------------
QT += core gui xml
#QT += xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = ReadXML
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
CONFIG += mobility
MOBILITY =
widget.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
bool parseXML(const QString &filename);
};
#endif // WIDGET_H
widget.cppc文件
#include "widget.h"
#include "ui_widget.h"
#include <QDomDocument>
#include <QFile>
#include <QDebug>
#include <QDomElement>
#include <QTableWidgetItem>
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
parseXML("contact.xml");
}
Widget::~Widget()
{
delete ui;
}
bool Widget::parseXML(const QString &filename)
{
QDomDocument doc; //学习文件操作知识
QFile file(filename);
if(file.open(QIODevice::ReadOnly))
{
qDebug() << "open file" << filename << "fileed" ;
return false;
}
QString strError;
int ErrLine;
int ErrCount;
//出错位置
if(!doc.setContent(&file,&strError,&ErrLine,&ErrCount))
{
qDebug() << "parse xml error : " << strError << " line " << ErrLine << " col " << ErrCount;
file.close();
return false;
}
file.close();
QDomElement element = doc.documentElement().firstChildElement("people");
quint8 tablenum;
tablenum = 0;
while(!element.isNull())
{
// contact = new Contact;
ui->tableWidget->setItem(tablenum,tablenum,new QTableWidgetItem(element.attribute("name")));
QDomElement Child = element.firstChildElement("mobile");
if(Child.isNull())
{
ui->tableWidget->setItem(tablenum,tablenum,new QTableWidgetItem(Child.text()));
}
//contacts.append(contact);
element = element.nextSiblingElement("people");
tablenum++;
}
return true;
}
我的xml文件
contact.xml
<?xml version='1.0' encoding='UTF-8'?>
<peoples>
<!-- comment, peoples -->
<people name="John">
<mobile>13302901234 <![CDATA[<primary>]]> </mobile>
</people>
<people name="Mary">
<mobile>13902905678</mobile>
</people>
</peoples>