日期:2014-03-05  浏览次数:20994 次

  一、必须弄清楚最终需求的是什么

  我们通过asp或其他动态编程言语,最终需求的是XML格式的数据,这点和XML数据所在的文件载体无关,它可以是实实在在的XML文件,比如:http://www.dw8.cn/common/dw8.xml 。也可以为asp文档,比如:http://www.cnbruce.com/blog/rss2.asp

  他们都是XML数据的体现,为了实现XML数据的动态,所以需求使用到动态编程言语,比如ASP来实现生成它。

  二、如何生成动态的XML文档

  如果是生成XML文件,介于动态文档是ASP格式的,所以必须借助FSO进行XML文件的生成,比如:

  以下是援用片段:
<%
xmlfile=server.mappath("test1.xml")
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(xmlfile,True)
MyFile.WriteLine("<?xml version=""1.0"" encoding=""gb2312""?>")
MyFile.WriteLine("<世界>")
MyFile.WriteLine("<你好>hello,world</你好>")
MyFile.WriteLine("</世界>")
MyFile.Close
%>

<a href="test1.xml">查看XML文件内容</a>

  有关FSO的操作参看
  http://www.cnbruce.com/blog/showlog.aspcat_id=26&log_id=440

  如果按照生成动态的XML数据文件来说,则是将MyFile.WriteLine的相关内容在动态文档中通过程式的手段来控制XML节点的名称和值即可。

  三、如何使用动态文档生成XML数据

  那如果不是生成XML文件,直接在动态文档上输出XML数据呢,须声明文件的类型(即Response.ContentType)

  <%Response.ContentType = "text/XML"%>

  比如直接浏览如下的动态ASP文档,在浏览器中下则显示为XML数据树

  以下是援用片段:
<%
With Response
    .ContentType = "text/XML"
    .write("<?xml version=""1.0"" encoding=""gb2312""?>")
    .write("<世界>")
    .write("<你好>hello,world</你好>")
    .write("</世界>")
End with
%>

  生成的XML文件,其优势就是处理该XML数据的文档可以是静态文档,比如HTML文件通过Javascript、XMLDOM来解析XML,同时也易于数据的保留,而动态文档上的动态XML数据则没有这样有点。不过,在如今动态文档无处不在用的时代,似乎这个优势对于一些使用来说是无甚影响,甚至来说,动态文档的XML数据流反而更具优势:更及时、更动态。