社区
HTML/XML
帖子详情
webbrowser读取xml源文件问题
qianyong325
2008-04-16 11:08:37
我navigate一个url,返回的是xml文件,在DocumentComplete处理的时候用get_innerHTML得到的是处理过的html内容,用get_innerText的到的也和xml文件有所不同,在ie里右键菜单查看源文件是可以看到原始xml文件的内容的。请问应该怎么做。
用get_innerText会在xml文件前面有个"-" ,如果是<a></a>中间不写内容,会变成<a/>这样的东西。
急用,分不是问题
...全文
618
11
打赏
收藏
webbrowser读取xml源文件问题
我navigate一个url,返回的是xml文件,在DocumentComplete处理的时候用get_innerHTML得到的是处理过的html内容,用get_innerText的到的也和xml文件有所不同,在ie里右键菜单查看源文件是可以看到原始xml文件的内容的。请问应该怎么做。 用get_innerText会在xml文件前面有个"-" ,如果是中间不写内容,会变成这样的东西。 急用,分不是问题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qianyong325
2008-04-17
打赏
举报
回复
恩,只有IDispatch接口?那就是主要应用于脚本的,呵呵。 下午下班前结贴了。谢谢
jameshooo
2008-04-17
打赏
举报
回复
其实这个接口就是AJAX中的httpXmlRequest对象,IE在window对象中已经嵌入了这个对象,直接用于AJAX,所以C++的调用方式跟脚本是完全一样的。
jameshooo
2008-04-17
打赏
举报
回复
如果使用异步,load会马上返回。在load之前你要设置一个回调(IDispatch),put_onreadystatechange(VARIANT)或者put_ondataavailable(VARIANT)都可以,一般用第二个,VARIANT参数就是你的回调IDispatch,当数据返回并解析好后,或者加载状态发生改变的时候会调用对应的回调。
qianyong325
2008-04-17
打赏
举报
回复
我想问楼上的,url返回给我的是一个xml文件,怎么能在navigate之前得到。其实用jameshooo 的方法也可以,抛弃webbrowser。另外用webbrowser也可以,问题我已经解决了。
现在向jameshooo 提问:
CoCreateInstance --> IXMLDOMDocument
IXMLDOMDocument::put_async(VARIANT_FALSE or VARIANT_TRUE)
IXMLDOMDocument::load(url)
IXMLDOMDocument::selectSingleNode("//html") --> IXMLDOMElement
IXMLDOMElement::get_xml / text
如果put_async设置的是异步。那么load是不是会立刻返回? 那么当实际的xml返回以后是有连接点通知吗?如果有,是什么呢?
上面回答问题的只有你的还算是沾点边,这个问题也解决了100分全是你的。
另外,很久没有来csdn技术区了,发现星星的质量真不怎么样。 我的问题是翻以前的帖子,蒋老大有过解决方法的。各位有兴趣可以自己去找找!
ToperRay
2008-04-17
打赏
举报
回复
你要在navigate之前得到才可以。
jameshooo
2008-04-16
打赏
举报
回复
不要使用浏览器控件,可以直接使用msxml2.DOMDocument组件来加载XML文档:
CoCreateInstance --> IXMLDOMDocument
IXMLDOMDocument::put_async(VARIANT_FALSE or VARIANT_TRUE)
IXMLDOMDocument::load(url)
IXMLDOMDocument::selectSingleNode("//html") --> IXMLDOMElement
IXMLDOMElement::get_xml / text
vcPlayer
2008-04-16
打赏
举报
回复
这种方法只能取到常规的网页内容。有些网页是经过加密处理或者说是不允许这样来取的。LZ尝试一下SOCKET模拟HTTP请求包看能否得到网页的真实内容?
qianyong325
2008-04-16
打赏
举报
回复
我就是这样写的,用get_outerHTML取得的是html,并不是原始的xml,用get_outerText取得的也不是。上面已经做了说明了啊
Kudeet
2008-04-16
打赏
举报
回复
SHDocVw::IWebBrowser2Ptr spBrower;
get_Document
IHTMLDocument2 *document = spBrower->get_Document(..);
IHTMLElement *body;
BSTR title,source,content;
document->get_title(&title); //取title
document->get_body(&body);
body->get_outerHTML(&source);//取源程序
body->get_outerText(&content);//取文本
基本的代码是这样,试试看
scq2099yt
2008-04-16
打赏
举报
回复
up
qianyong325
2008-04-16
打赏
举报
回复
用webbrowser就不行吗?有时候获得的是html,并且要在borwser上面显示的,用webbrowser会比较方便的。
winform 使用XSLT来转换
XML
源码
winform 使用XSLT来转换
XML
源码! 很值得下载看看!资源免费,大家分享!!
Web
打印控制技术总结
Web
打印控制技术总结
Web
打印控制技术总结
Web
打印控制技术总结
HTML/XML
3,055
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章