我想实现将一个xml文件中某个元素转为字符串的功能,因为使用的是tinyxml2,所以写了如下代码 XMLDocument xmlDoc; const char* data = "<Items><Item><Column>123</Column><Column>12</Column><Column>12.34</Column></Item>" "<Item><Column>456</Column><Column>22</Column><Column>34.56</Column></Item></Items>"; xmlDoc.Parse(data); XMLElement *itemsEle = xmlDoc.FirstChildElement(); while(itemsEle != NULL) { XMLElement *itemEle = itemsEle->FirstChildElement(); while(itemEle != NULL) { XMLPrinter xmlPrinter; itemEle->Accept(&xmlPrinter); cout<<xmlPrinter.CStr()<<endl; itemEle = itemEle->NextSiblingElement(); } itemsEle = itemsEle->NextSiblingElement(); } 但是XMLPrinter析构总是报错…… |
|
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
对学习编程者的忠告: 单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。 VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。 |
|
你能来点有用的么……我能调出来还来发帖子。。 |
|
20分 |
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。 |
您这些教育教育初学者就行了……我既然发帖就说明我已经尽力之后还是解决不掉……你说的这些工作几年的都会……谢谢了 |
|
楼主工作都几年了,还不知道将报错的具体提示信息或截图一并发上来?
|
|
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
|
|
连个蹭分的都没
|
|
20分 |
最近也在用这个,单纯的看好像看不出大问题,主要是指针判断是否为空 好吧我是来蹭分的 |
问下楼主,这个用visiter访问node有啥优点啊,那个字符串输出来,还带着标签呢,也取不到里面内容啊? |