用Qt读取xml文件,程序执行到 if(!doc.setContent(&file)) 时候出错

看霍亚飞的那本<Qt Creator快速入门>,然后就照着写那个DOM方式读取xml文件的例子出这样的错误。

一开始大家都以为自己的路径会有问题,其实在之前open的时候没问题,怎么可能到后面这里才出问题呢?(自己也在这里绕了很多弯弯)

通过其他方式了解这个函数的原理,其实就是创建一个树,将xml格式的数据保存到一个树一样结构的doc里面去。也就是说,我们在创建这个树的时候出错了,定位一下就知道自己的XML文件是不是错了。

换一个xml,网上下下吧,比较一下发现,原来第一行的<?xml version = "1.0" encoding = "UTF-8"?>中的问号两边不能有空格!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三.备忘录 实验要求: 用VC++实现备忘录小程序,能够设定事件通知信息,并按照设定的时间进行事件通知, 具体要求如下: 1.界面友好,美观大方; 2.支持事件的录入,包括时间、事件、备注信息等; 3.支持在设定的时间进行事件提醒; 4.支持对已录入事件大的查看、修改和删除; 5. 其他更多功能,可根据情况自行添加。 题目分析:由题意可知,建立备忘录小程序需要操作的对象是"事件"和"事件列表"。因 此,我们建立了事件类(class Event)和事件链表类(class EventList)。以下是对类的具体分析: 事件类的成员变量中应当包含以下信息: 内容(content) 标识符用以唯一标识(id) 是否设置提醒(reminder) 事件提醒时间(time) 标题(title) 对应成员变量的成员函数有: Event():构造一个空事件 getContent():获得事件内容 getOleTime():获得COleDateTime对象的时间 getReminder():获得是否提醒 getTime():获得字符串格式时间 getTitle():获得标题 setContent(..),setID(..),setReminder(..),setTime(..),setTitle(..)分别设置 内容,ID,提醒,时间,和标题。 创建一个事件的具体过程: 1.声明一个事件Event对象,调用默认构造函数。 2.根据用户输入调用相应的set函数给事件成员变量赋值。需要注意的是:content,id, tiltle都是CString类对象,而time是COleDateTime对象。 3.调用setIDAuto()函数,给该事件自动加上ID,ID对应着当前时间点。以下是setIDAu to的具体实现代码: "void setIDAuto() " "{ " "COleDateTime cur_time; " "cur_time.GetCurrentTime(); " " " "int day =cur_time.GetDay(); " "int month = cur_time.GetMonth(); " "int year = cur_time.GetYear(); " " " "int minute = cur_time.GetMinute(); " "int hour = cur_time.GetHour(); " "int second = cur_time.GetSecond(); " "//根据当前时间设定ID " "id.Format(_T("%.4d-%.2d-%.2d " "%.2d:%.2d:%.2d"),year,month,day,hour,minute,second); " "} " 下面是对事件链表类EventList的分析: 首先引入STL中的vector类,为事件构造一个向量(动态数组)。语句为: std::vector<Event> event_vector 而该类的所有操作都是围绕着这个事件向量进行的。 以下是对成员变量的解说: Event left_event:标记即将发生事件,在后面的【事件提醒】有详细介绍。 int size:记录当前的事件数量 成员函数: addEvent:添加事件 check():检查left_event是否到达提醒时间 deleteEvent:从id或下标删除事件 GetEvent:从下标获取事件 getLeftEvent:设置left_event,并返回它 getSize:或取当前事件数 Read:从传入路径读取文件,获取已保存事件数据 Save:从传入路径写入文件 以下是添加一个事件的流程: 1. 创建事件 2. 调用EventList的成员函数addEvent添加事件 程序共含两个窗体:即主窗体和事件添加编辑窗体。以下是窗体截图: 两个窗体分别为两个类,其中主窗体类名为CbeiwangluDlg,包含以下私有成员。 Cur_event:一个事件对象,新建和编辑对象时用的临时变量 event_list:事件链表,伴随着窗体的生命周期 left_event:保存即将发生的事件 事件添加编辑窗体类为CNewEventDlg,类关系图为: 以下是对该类的成员变量进行说明: Event* cur_event:保存一个事件指针,而该类的所有操作均是对该指针所指向的对象进行操作 Bool ifEdit:判断是否为编辑窗口,默认是添加事件窗口 EventContext:事件内容,和一个EditBox绑定 EventID:事件ID,自动设置 EventReminder:事件是否提醒,和一个CheckBox绑定 EventTitle:事件标题,与一个EditBox绑定 Selected

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值