ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6868|回复: 14

[求助] 请问xmlhttp如何把htm网页处理成DOM?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-12-9 12:43 | 显示全部楼层 |阅读模式
初学问个低级问题大家别笑话,
搜了论坛里跟msxml、xmlhttp的很多帖子还是没看明白
那些帖子里都是用responseText把返回的htm文件当成文本来处理,像下面这个例子

Dim HttpReq As New MSXML2.XMLHTTP30
HttpReq.open "GET", "http://localhost/books.xml", False
HttpReq.send
处理 HttpReq.responseText

想请教一下要是想像XML的DOM对象那样能树形结构那样处理应该怎么办

TA的精华主题

TA的得分主题

发表于 2010-12-9 12:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
是的,见到的基本都是当字符串处理
俺试过把StrConv(HTTP.responseBody, vbUnicode)装入WebBrowser控件,可提示没有权限,页面随即就消失了
帮楼主顶下帖!!

TA的精华主题

TA的得分主题

发表于 2010-12-9 13:03 | 显示全部楼层
为什么不用Microsoft.XMLDOM直接LOAD XML文件???

TA的精华主题

TA的得分主题

发表于 2010-12-9 13:08 | 显示全部楼层
或者可以试试HttpReq.responseXML返回到Microsoft.XMLDOM的LOADXML方法载入?

TA的精华主题

TA的得分主题

发表于 2011-9-30 08:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jyhxr 于 2011-9-30 08:47 编辑

这个问题也让本人感到迷茫,XMLDOM如何才能正确装载XMLHTTP.responseBODY 进而可以利用XMLDOM遍历页面上各元素的内容呢?
当然,将XMLHTTP.responseBODY 保存为文件后用WebBrowser装载是可以的,只是太麻烦了吧,且WebBrowser在处理数据时比较不可靠.
请各位高手们弄个示例,谢谢指教!

TA的精华主题

TA的得分主题

发表于 2011-9-30 08:49 | 显示全部楼层
wudixin96 发表于 2010-12-9 13:03
为什么不用Microsoft.XMLDOM直接LOAD XML文件???

请3楼大侠弄个示例上来,指教一二,谢谢!

TA的精华主题

TA的得分主题

发表于 2011-9-30 09:02 | 显示全部楼层
估计搞错了吧? xmlhttp  返回的只是字符串或者二进制数据而已,不一定能装进 XMLDOM ,有可能是 HTMLDOM ,甚至只是简单的字符串而已。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-9-30 09:23 | 显示全部楼层
cg1 发表于 2011-9-30 09:02
估计搞错了吧? xmlhttp  返回的只是字符串或者二进制数据而已,不一定能装进 XMLDOM ,有可能是 HTMLDOM , ...

也许是错了,如何装到HTMLDOM中,然后能象启遍历WebBrowser1中的元素一样遍历HTMLDOM呢?
还请大侠指导一二!

TA的精华主题

TA的得分主题

发表于 2011-9-30 11:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 cg1 于 2011-9-30 11:31 编辑

我记得用 document.body.innerhtml = "字符串" 可以加载的。关于body以外的怎么加载忘记了

好像 DOCUMENT.WRITE 也是可以的。


    Dim d As New MSHTML.HTMLDocument
   
    d.body.Document.write "<html><head></head><body><a id=ac href='xxx.html'></a></body></html>"
    Debug.Print d.FirstChild.outerHTML

TA的精华主题

TA的得分主题

发表于 2012-2-22 16:23 | 显示全部楼层
不需要用ODM,直接用.responseXML就可以处理XML格式数据。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 19:37 , Processed in 0.054700 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表