首页
关于我们
服务项目
作品展示
服务支持
联系我们
友情链接
网站地图
 您当前位置:网络学院 -> 编程开发系-> 编程开发-> XML教程
网络编程:如何生成XML数据
作者:admin 来源:网络
日期: 2007-2-27
站内搜索
文章页数:[1] 

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

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

%>

  1. CreateObject("Microsoft.XMLDOM") 声明使用XMLDOM对象
  2. 在元素或节点被建立(createElement、createNode)时,其并没有加到文件树中,若要将节点加到文件树中,则需要插入,如appendChild。
  3. xmlDocument.createNode(type, name, nameSpaceURI) 表示建立一个指定型态、名称,及命名空间的新节点

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

    objXMLdoc.createNode("element", "你好", "") 等同于 objXMLdoc.createElement("你好")

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

文章页数:[1] 
放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·DOM的结构
·网络编程:如何生成XML数据
·论Asp与XML的关系
·使用DOM创建XML
·巧用XML做多语言界面的FLASH
·给 XML 初学者
·XML文档搜索使用小结
·在 Excel 2003 中创建 XML 映射
·XML技术上传文件
·WML——XML标记语言开发实例详细解析
最新文章
·论Asp与XML的关系
·使用DOM创建XML
·XML文档搜索使用小结
·XML技术上传文件
·给 XML 初学者
·WML——XML标记语言开发实例详细解析
·在 Excel 2003 中创建 XML 映射
·巧用XML做多语言界面的FLASH
·DOM的结构
·用XMLHTTP组件解析图片地址并保存
相关主题
版权申明:除部分特别声明不要转载,或者授权本站独家播发的文章外,大家可以自由转载本站的原创文章,但原作者和来自本站的链接必须保留(非本站原创的,按照原来自一节,自行链接)。文章版权归本站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去本站水印。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论  打印  刷新  推荐给朋友  返回顶部  关闭

网上大名: