XML通讯录求助!

独领风骚的猫 2011-02-28 10:38:22
这是我的通讯录XML文件结构部分
<peoples>
<people>
<datas>
<data>
<mimetype>name</mimetype>
<value>婊曞嚡鍗?/value>
<firstName>婊?/firstName>
<LastName>鍑崕</LastName>
</data>
<data>
<mimetype>cooperation</mimetype>
<value>娴庡崡鑸滃痉绔熷ぉ杞欢鏈夐檺鍏徃</value>
<CooperationName>娴庡崡鑸滃痉绔熷ぉ杞欢鏈夐檺鍏徃</CooperationName>
</data>
<data>
<mimetype>department</mimetype>
<value>寮€鍙戦儴鏈夐檺鍏徃</value>
<DepartmentName>寮€鍙戦儴鏈夐檺鍏徃</DepartmentName>
</data>
......

我想读取XML文件向手机通讯录中添加内容
加载XML文件代码我就不写了,光写向通讯录写的

TiXmlElement *RootElement = ConnectFromNt->RootElement();//获得根元素,即Persons。
TiXmlElement *FirstPerson = RootElement->FirstChildElement();//获得第一个Person节点。
TiXmlElement *FirstDatas = FirstPerson->FirstChildElement();//获得第一个datas节点。
TiXmlElement *FirstData1 = FirstDatas->FirstChildElement();//获得第一个data节点。
//获得第一个Person的datas节点和data节点。姓名
TiXmlNode *MimetypeElement1 = FirstData1->FirstChild("mimetype");
TiXmlNode *ValueElement1 = MimetypeElement1->NextSibling("value");
TiXmlNode *FirstNameElement = ValueElement1->NextSibling("firstName");
TiXmlNode *LastNameElement = FirstNameElement->NextSibling("lastName");
if(FirstNameElement)
{
ConvertUtf8ToGBK(FirstNameElement->FirstChild()->Value());
//iContact->put_FirstName(CComBSTR(ConvertUtf8ToGBK(FirstNameElement->FirstChild()->Value())));
}
if (LastNameElement)
{
ConvertUtf8ToGBK(LastNameElement->FirstChild()->Value());
//iContact->put_LastName(CComBSTR(ConvertUtf8ToGBK(LastNameElement->FirstChild()->Value())));
}
TiXmlElement *FirstData2 = FirstData1->NextSiblingElement();//获得下一个data节点。
TiXmlNode *MimetypeElement2 = FirstData2->FirstChild("mimetype");//获得下一个Person的data节点。公司名称
TiXmlNode *ValueElement2 = MimetypeElement2->NextSibling("value");
TiXmlNode *CooperationNameElement = ValueElement2->NextSibling("CooperationName");
if(CooperationNameElement)
{
ConvertUtf8ToGBK(CooperationNameElement->FirstChild()->Value());
//iContact->put_CompanyName(_bstr_t(ConvertUtf8ToGBK(CooperationNameElement->FirstChild()->Value())));
}
TiXmlElement *FirstData3 = FirstData2->NextSiblingElement();//获得下一个data节点。
//获得下一个Person的data节点。部门名称
TiXmlNode *MimetypeElement3 = FirstData3->FirstChild("mimetype");
TiXmlNode *ValueElement3 = MimetypeElement3->NextSibling("value");
TiXmlNode *DepartmentNameElement = MimetypeElement3->NextSibling("DepartmentName");
if (DepartmentNameElement)
{
//以上都没问题,能成功读取XML,可是到下一句DepartmentNameElement->FirstChild()->Value(),这里有问题,编译能通过,可是执行通不过,不知道是什么原因,请各位大侠赐教!我都快急哭了~~~~
DepartmentNameElement->FirstChild()->Value();
iContact->put_Department(_bstr_t(ConvertUtf8ToGBK(DepartmentNameElement->FirstChild()->Value())));
}
...全文
550 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
独领风骚的猫 2011-02-28
  • 打赏
  • 举报
回复
我用了一个中间变量,一直都是执行到DepartmentNameElement->FirstChild()->Value();
出错
儿大不由爷 2011-02-28
  • 打赏
  • 举报
回复
你那个调用太深,看不出什么问题,用中间变量,一步一步的操作,看看问题处在哪里

7,657

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧