Javascript、ASP解析(远程)XML

0,有如下的XML文档(t1.xml):


<?xml version="1.0" encoding="gb2312"?>
<channel>
<item>
  <title>Myblog</title>
  <link>http://www.cnbruce.com/</link>
</item>
<item>
  <title>164Music</title>
  <link>http://www.164.cc/</link>
</item>
</channel>



http://www.cnbruce.com/test/testxml/t1.xml

1,可通过javascript建立XMLDOM来解析该XML,方法如下:

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

注意:xmlDoc.load("/test/testxml/t1.xml") 解析的XML文档必须是在同站点目录下,比如当前保存在我blog内的XML文件即是:

http://www.cnbruce.com/test/testxml/t1.xml

保持XML文件和解析文件在同一站点,而不能垮区域进行。

3,此外,通过Javascript建立的MSXML组建可应用如下:

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

当然,我对于 ActiveXObject("Microsoft.XMLDOM")、ActiveXObject("MSXML") 以及ActiveXObject("MSXML2.DOMDocument")的定义目前还有些困惑:(

4,如果是ASP脚本是VBScipt的情况来解析该XML,可如下:



<%
Set xml=Server.CreateObject("Microsoft.XMLDOM")
xml.Async=False
xml.ValidateOnParse=False
xml.Load(server.mappath("t1.xml"))

Set item=xml.getElementsByTagName("item")
For i=0 To (item.Length-1)
    Set title=item.Item(i).getElementsByTagName("title")
    Set link=item.Item(i).getElementsByTagName("link")
    Response.Write(title.Item(0).Text &" "& link.Item(0).Text &"<hr />")
Next
%>



其中 server.mappath("t1.xml") 表示解析文件与XML文件的相同目录下。比如

http://www.cnbruce.com/test/testxml/t1.asp

就是解析的相同目录下的

http://www.cnbruce.com/test/testxml/t1.xml

5,来解决下跨越解析的问题
说道跨域,就必然谈到 Microsoft.XMLHTTP

那么先请求远程的任何文件,通过responseXML属性将返回消息为XML文档。

比如:


Set http=Server.CreateObject("Microsoft.XMLHTTP")
http.Open "GET","http://dw8.cn/common/dw8.xml",False
http.send



那么 http.ResponseXML 则是XML数据(如果远程文件本身含有XML数据的话)

所以在4方法的基础上添加远程获取功能,即可实现跨越解析XML数据。



<%
Set http=Server.CreateObject("Microsoft.XMLHTTP")
http.Open "GET","http://dw8.cn/common/dw8.xml",False
http.send


Set xml=Server.CreateObject("Microsoft.XMLDOM")
xml.Async=False
xml.ValidateOnParse=False
xml.Load(http.ResponseXML)

Set item=xml.getElementsByTagName("item")
For i=0 To (item.Length-1)
    Set title=item.Item(i).getElementsByTagName("title")
    Set link=item.Item(i).getElementsByTagName("link")
    Response.Write(title.Item(0).Text &" "& link.Item(0).Text &"<hr />")
Next
%>



调试文件: http://www.cnbruce.com/test/testxml/t2.asp

最后,搜索到有关Microsoft.XMLDOM的属性和方法定义如下:
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

文章来源: http://www.adp-gmbh.ch/web/js/msxmldom/methods_properties.html

当然,关于远程解析XML,还可通过XSL,这在我的一篇日志中提及的:

http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=969

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值