如何生成XML数据

Nic_le乐

Nic_le乐

2016-02-19 21:14

下面图老师小编跟大家分享如何生成XML数据,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

一,必须弄清楚最终需要的是什么

我们通过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文件的生成,比如:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

%
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化作了很好的推介。

总结

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

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

展开更多 50%)
分享

猜你喜欢

如何生成XML数据

Web开发
如何生成XML数据

网络编程:如何生成XML数据

Web开发
网络编程:如何生成XML数据

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何用ASP生成XML数据文档(RSS订阅)

Web开发
如何用ASP生成XML数据文档(RSS订阅)

根据数据库生成xml二法

电脑网络
根据数据库生成xml二法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

数据库生成xml的简单方法

Web开发
数据库生成xml的简单方法

使用XML DOM生成XML(3)

Web开发
使用XML DOM生成XML(3)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

去年情人节那天的恳求,如今去成了泡影.

去年情人节那天的恳求,如今去成了泡影.

初学Oracle最经常碰到的错误及解决方案

初学Oracle最经常碰到的错误及解决方案
下拉加载更多内容 ↓