如何生成XML数据

2016-02-19 21:14 11 1 收藏

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

【 tulaoshi.com - Web开发 】

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

我们通过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

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

有关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)

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

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)

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

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操作是必须的。

来源:http://www.tulaoshi.com/n/20160219/1625647.html

延伸阅读
标签: ASP
  Function ReplaceChar ( FstrSource )   dim strRet   if IsNull(FstrSource) then     FstrSource = ""   end if   strRet = Replace ( FstrSource , "&" , "&amp;" )   strRet = Replace ( strRet , "<" , "&lt;" )   strRet = Replace ( strRet , "" , "&gt;" ) ...
标签: Web开发
项目兼容需要生成一系列的XML文件,总结了下XML文件的生成基本方式 XmlTextWriter w = new XmlTextWriter("C:XML文件名.xml", Encoding.Unicode); //Encoding.Unicode为生成XML文件的编码格式,到时候合输出:?xml version="1.0" encoding="utf-16"? w.Formatting = Formatting.Indented; // 这个比较重要,这个属性说明xml文件里面的内容是...
标签: Web开发
现在有很多的xml工具软件都能根据xsd文件书写出xml文档,.net 没有实现此方法,如是我写了几个浏览、校验、和创建xml的方法 全部代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI...
标签: Web开发
有两文件: objXML.asp:测试文件 clsXML.asp:vbs类文件 代码: objXML.asp %@ Language=VBScript % % Option Explicit % !--#INCLUDE FILE="clsXML.asp"-- % Dim objXML, strPath, str Set objXML = New clsXML strPath = Server.MapPath(".") & "New.xml" objXML.createFile strPath, "Root" 'Or If using an existing XML file: &#...
标签: Web开发
/****************************************** *JXTree对象,读取外部xml文件数据,生成树 *@author brull *@email brull@163.com *@date 2007-03-27 *******************************************/ /*  *@param xmlURL XML文件的地址  */ var JXTree = function(xmlURL) { &nbs...

经验教程

723

收藏

75
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部