MsXml parse problem..

happyashley 2010-08-17 10:26:03

IXMLDomDocument pdoc;
BSTR bstrXML;
Bool boolIsSucceeded;
Initialize( pdoc );
pdoc->loadXML( bstrXML, boolIsSucceeded);


But the virable boolIsSucceeded returns -1.

Who can help me to find the reason and solve it ?

Thanks!
...全文
75 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyashley 2010-08-20
  • 打赏
  • 举报
回复
I had found the reason of fail.
The length of bstrXML was too large.....
I have to load the string by saving into file and call load().

Thanks very much!
happyashley 2010-08-20
  • 打赏
  • 举报
回复
For arong1234, Yes, the XML file showed in IE8 perfectly.
arong1234 2010-08-19
  • 打赏
  • 举报
回复
1. what does initialize do?
2. if you load your xml using ie, does it work?
RLib 2010-08-19
  • 打赏
  • 举报
回复
哇。Does 楼主 来自 中国?
happyashley 2010-08-19
  • 打赏
  • 举报
回复
http://stefaniewang.spaces.live.com/Blog/cns!C66AF34260B2739F!238.entry
happyashley 2010-08-19
  • 打赏
  • 举报
回复
LoadXML的正确使用
LoadXML是MS提供的XMLDom接口中的一个函数,用于将字符串载入一个XML document,该函数的使用存在很多注意事项,在近来的开发调用中总结出以下几点:
1、字符串必须是一个完整的xml document或者well-formed的片段,否则会出现异常退出的错误。常在编程中,因内存分配不足等原因,使的传入的字符串于某处意外截断,尤其当字符串过长时,该错误不易发现。调试状态下,可通过获取字符串的长度后对末尾部分观察来判断,对较短的片段,可简单的将字符串复制到Altova Spy等专用xml编辑器中观察是否well-formed.
2、 LoadXML 方法总是采用只在 UCS-2 或 UTF-16 中编码的 Unicode BSTR,所以当字符串是UTF-8编码格式时,需要首先对其进行转换,才能够传入函数,否则即使该函数成功执行,后续对dom结构中内容的访问也会出现错误,尤其是出现中文乱码的情况.
3、参数是BSTR类型,当string长度过长时,如果通过强制转换 (_bstr_t)str传入函数,则在转换时会出现overflow的异常,故正确的方法是先利用AllocSysString将CString转换为BSTR,再传入函数。
4、若采用Load方法根据本地文件路径获取xml document,则当原始字符串存入目标文件时,或根据系统编码类型对文件编码,故存在要点2的隐患,这是该方法比Load方法优势的地方。
目前程序出现的问题暂都是由这几个原因造成。未来出现新问题时再做补充!
happyashley 2010-08-19
  • 打赏
  • 举报
回复
Thanks logicie1.

I just forgot to type the '&'.
logiciel 2010-08-19
  • 打赏
  • 举报
回复

pdoc->loadXML( bstrXML, &boolIsSucceeded);
huayiluo 2010-08-17
  • 打赏
  • 举报
回复
不懂英语
happyashley 2010-08-17
  • 打赏
  • 举报
回复
Sorry , update the codes.

IXMLDomDocument *pdoc;
BSTR bstrXML;
Bool boolIsSucceeded;
Initialize( pdoc );
pdoc->loadXML( bstrXML, boolIsSucceeded);

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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