简体企业网站
英文企业网站
繁体企业网站
三语企业网站
 
综合网店商城
鲜花礼品网店
图书音像网店
手机数码网店
服装鞋业网店
学校教育网站
医院诊所网站
律师事务网站
代理网站平台
 
行业商贸网站
城市美食网站
分类信息网站
新闻文章网站
 
国际域名
国内域名
虚拟主机
企业邮局
 
优惠套餐
基础报价
模块开发报价
网站定制流程
 
代理商体系
代理商优势
申请流程
加盟办事处
 
Asp编程
PHP编程
.Net编程
XML编程
更多教程...
网站管理
预付款充值
付款方式
在线教程
 
   
 
Asp编程  (32)
PHP编程  (13)
.Net编程  (10)
Xml编程  (10)
Access  (10)
Mssql  (10)
Mysql  (10)
Jsp编程  (0)
 
如何生成XML数据
深圳通用网站建设与开发工作室   2008-06-15 00:48:10 作者:SystemMaster 来源: 文字大小:[][][]
一、必须弄清楚最终需要的是什么

  我们通过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数据流反而更具优势:更及时、更动态。

  四、生成XML数据就是这样行了吗?

  无论是通过生成具体的XML文件,还是动态的XML数据流,只要按照XML的格式输出相关XML节点和值就可以了,这样看来XML似乎很简单。但这并没有真正接触到XML的操作。在我们看来,这些XML无非就是一些成对的标签和相关字符组成的数据记录,毫无生命力可言。然而事实上,通过XMLDOM来操作XML则显示了XML的绝对优势(这点在生成XML时优势不明显,却在添加、删除XML节点时体验无限)。

  使用XMLDOM创建XML文档,可使用Save方法生成XML文档,使用createElement方法创建XML元素、createNode创建节点,其实对于XML中的任何标签的创建都可以任意选择其中的一种,不过一般使用createElement创建顶层(根)元素,使用createNode创建子节点(元素),当然createElement和createNode的使用方法也是不同。

<%
Set objXMLdoc = CreateObject("Microsoft.XMLDOM")

Set world=objXMLdoc.createElement("世界")
objXMLdoc.appendChild(world)

Set hello=objXMLdoc.createNode("element", "你好", "")
hello.Text = "hello,world"
objXMLdoc.documentElement.appendChild(hello)

objXMLdoc.Save Server.MapPath("test2.xml")
Set objXMLdoc = Nothing
%>

  CreateObject("Microsoft.XMLDOM") 声明使用XMLDOM对象

  在元素或节点被建立(createElement、createNode)时,其并没有加到文件树中,若要将节点加到文件树中,则需要插入,如appendChild。

  xmlDocument.createNode(type, name, nameSpaceURI) 表示建立一个指定型态、名称,及命名空间的新节点

  type 用来确认要被建立的节点型态,name 是一个字符串来确认新节点的名称,命名空间的前缀则是选择性的。nameSpaceURI 是一个定义命名空间URI 的字符串。如果前缀被包含在名称参数中,此节点会在nameSpaceURI 的内文中以指定的前缀建立。如果不包含前缀,指定的命名空间会被视为预设的命名空间。

  objXMLdoc.createNode("element", "你好", "") 等同于 objXMLdoc.createElement("你好") 4,objXMLdoc.documentElement.appendChild(hello)其实就是XML文档根元素下建立节点,在本例中等同于 world.appendChild(hello),world为本例中的节点名,以此类推。

  所以可以这样来写:

<%
Set objXMLdoc = CreateObject("Microsoft.XMLDOM")

Set world=objXMLdoc.createElement("世界")
objXMLdoc.appendChild(world)

Set hello=objXMLdoc.createElement("你好")
hello.Text = "hello,world"
world.appendChild(hello)

objXMLdoc.Save Server.MapPath("test2.xml")
Set objXMLdoc = Nothing
%>

  需要注意的是,通过XMLDOM生成的XML文件都是UTF-8格式的,这对我们所有应用程序文件的UTF-8化作了很好的推介。

  总结

  生成XML数据,可以使用FSO,如FSO被禁用,可使用XMLDOM,当然还可以直接使用动态文档。不过如果融会贯通地掌握XML的操作,XMLDOM操作是必须的。

最新评论
发表评论  
评论标题
评论内容
图片上传
表情图标
验 证 码
关于我们 建站流程 联系方式 付款方式 帮助中心 典型案例
 
主营范围:深圳网站建设、深圳网页设计、深圳网站制作与优化、大型网站建设、英文网站建设、域名注册、虚拟主机
深圳通用网站建设团队  点击这里给我发消息184268   点击这里给我发消息7683320    24小时服务:13510468215
Powered By 545.com.cn Copyright © 2006-2008  粤ICP备08039309号