0,有如下的XML文档(t1.xml):
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,可如下:
其中 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文档。
比如:
那么 http.ResponseXML 则是XML数据(如果远程文件本身含有XML数据的话)
所以在4方法的基础上添加远程获取功能,即可实现跨越解析XML数据。
调试文件: 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
<?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