我们在从事郑州网站建设工作的时候,经常会用到对XML文件或者XML数据进行分析的情况。这个时候我们就需要采取一种比较有效的手段来读取XML的数据,并对之进行分析。在ASP程序编码中,最常用的读取和分析XML文件的组件是“Microsoft.XMLHTTP”和“Microsoft.XMLDOM”,这两个组件一起结合使用,我们就能够设计出高效的读取XML文件内容的ASP网页程序。在ASP网页编程语言里,通常都是采用这样的方式来读取并分析XML文件,我们当然也不例外,凡是需要使用ASP设计网页代码读取XML文件数据的时候,也都是使用这两个组件来操作。下面,笔者以读取网站地图的XML文件sitemap.xml为例,来为各位技术人员介绍一下下在进行郑州网站制作的时候的读取XML文件的代码,供各位读者可以参考一下,希望能对同行们有所帮助。
◆sitemap.xml实例文件的数据如下:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.kxcom.net/</loc>
<priority>1.0</priority>
<lastmod>2013-09-25T23:15:33+00:00</lastmod>
<changefreq>Always</changefreq>
</url>
<url>
<loc>http://www.kxcom.net/fabu.html</loc>
<priority>0.8</priority>
<lastmod>2013-09-25T02:01:18+00:00</lastmod>
<changefreq>Always</changefreq>
</url>
<url>
<loc>http://www.kxcom.net/guandian.html</loc>
<priority>0.8</priority>
<lastmod>2013-09-24T09:52:03+00:00</lastmod>
<changefreq>Always</changefreq>
</url>
<url>
<loc>http://www.kxcom.net/jianshe.html</loc>
<priority>0.8</priority>
<lastmod>2013-09-24T15:47:40+00:00</lastmod>
<changefreq>Always</changefreq>
</url>
<url>
<loc>http://www.kxcom.net/jishu.html</loc>
<priority>0.8</priority>
<lastmod>2013-09-25T15:00:38+00:00</lastmod>
<changefreq>Always</changefreq>
</url>
</urlset>
从上面的地图文件 sitemap.xml 的数据,我们可以看到,地图文件完全是按照标准的XML语法形成的文件,里面有5个网址,我们这个仅仅是个例子,所以我们仅仅列出了5个网址,每一个网址都是由<url>和</url> 括起来的4个字段,这四个字段是 loc,priority,lastmod,changefreq,下面我们将读取网站地图的代码列出来如下,用代码循环读出各个网站的各个字段的值。
◆利用Microsoft.XMLHTTP和Microsoft.XMLDOM读取地图文件sitemap.xml文件的程序代码如下:我们假设地图文件的地址为 http://www.kxcom.net/sitemap.xml
<%
Set http=Server.CreateObject("Microsoft.XMLHTTP")
http.Open "GET","http://www.kxcom.net/sitemap.xml",False
http.send
Set xml=Server.CreateObject("Microsoft.XMLDOM")
xml.Async=False
xml.ValidateOnParse=False
xml.Load(http.ResponseXML)
If xml.ReadyState>2 Then
Response.Write("文档已经准备就绪。状态:"& xml.ReadyState &"")
Response.Write("<br><br>")
Set url=xml.getElementsByTagName("url")
For i=0 To (url.Length-1)
Set loc=url.Item(i).getElementsByTagName("loc")
Set priority=url.Item(i).getElementsByTagName("priority")
Set lastmod=url.Item(i).getElementsByTagName("lastmod")
Set changefreq=url.Item(i).getElementsByTagName("changefreq")
Response.Write("以下为第 " & CStr(i+1) &" 个网址的信息:")
Response.Write("<br>")
Response.Write("loc:" & loc.Item(0).Text & "")
Response.Write("<br>")
Response.Write("priority:" & priority.Item(0).Text & "")
Response.Write("<br>")
Response.Write("lastmod:" & lastmod.Item(0).Text & "")
Response.Write("<br>")
Response.Write("changefreq:" & changefreq.Item(0).Text & "")
Response.Write("<br><br><br>")
Next
Else
Response.Write("文档还未准备就绪。状态:"& xml.ReadyState &"<br>")
End If
Set http=Nothing
Set xml=Nothing
%>
在上面的代码中,可以看到,使用了Microsoft.XMLHTTP和Microsoft.XMLDOM这两个组件,并创建了这两个组件的实例,使用Set http=Server.CreateObject("Microsoft.XMLHTTP")和Set xml=Server.CreateObject("Microsoft.XMLDOM")来创建实例。在使用组件的时候,分别调用过了组件中提供的功能,例如使用对象的getElementsByTagName方法,可以取得xml文件中的字段标签,然后通过获取对象的text属性,来得到各个字段的值。在最后,还要把以上两个组件的实例进行销毁,即Set http=Nothing和 Set xml=Nothing.
◆以上代码的执行结果如下,从这个结果来看,可以看出,程序将 sitemap.xml 文件中的数据都按照我们的要求读取了出来,如果网址比较多,用这种方式同样能将所有的网站及其字段都能够读出来。以下是代码在浏览器中的执行结果:
文档已经准备就绪。状态:4
以下为第 1 个网址的信息:
loc:http://www.kxcom.net/
priority:1.0
lastmod:2013-09-25T23:15:33+00:00
changefreq:Always
以下为第 2 个网址的信息:
loc:http://www.kxcom.net/fabu.html
priority:0.8
lastmod:2013-09-25T02:01:18+00:00
changefreq:Always
以下为第 3 个网址的信息:
loc:http://www.kxcom.net/guandian.html
priority:0.8
lastmod:2013-09-24T09:52:03+00:00
changefreq:Always
以下为第 4 个网址的信息:
loc:http://www.kxcom.net/jianshe.html
priority:0.8
lastmod:2013-09-24T15:47:40+00:00
changefreq:Always
以下为第 5 个网址的信息:
loc:http://www.kxcom.net/jishu.html
priority:0.8
lastmod:2013-09-25T15:00:38+00:00
changefreq:Always