侯春英
摘 要:XML作为存储数据的首选手段,已经逐步达到取代一些数据库的功能而且使用起来远比数据库方便得多,本文从实用角度出发介绍了XML文档的建立、编辑及检索方式的实现。
关键词:XML;SGML;表单
XML作为存储数据的首选方式,已经逐步达到取代一些数据库的功能而且使用起来远比数据库方便得多,它不需要任何其它的数据库环境配置和数据库连接设置,便可以方便地实现数据库的功能并实现动态网页的设计工作。
XML文档是一种纯文本文档,可以用你喜欢的任意一种编辑器来创建它。但是在很多情况下,XML文档不应由设计者事先设计好来固定使用,而应在程序运行过程中由交互方式产生数据并动态建立相应的XML文档。本文将介绍一种动态XML文档建立和编辑方法及利用XSL样式表来检索显示XML文档的方法及实现过程。
1 创建并编辑一个XML文档的宏观描述
⑴通过交互方式(表单)将用户所要建立的XML元素存储在计算机内;
⑵用ASP程序进行处理,其主要处理过程可包含以下几个方面:1)创建DOM实例,并加载所要使用的XML文档;2)判断所要使用的XML文档是否存在,若不存在,则要先创建XML文档的声明部分和根元素;3)按用户在表单中所输入的各项在XML文档中建立相应的子元素;4)将所处理的数据保存。
2 文档动态处理过程示例
⑴newdata.htm文件的内容(主运行文件):
⑵newxml.asp文件的内容为:
<%
Function NewtoXML(FileName)
Dim objDom
Dim objRoot
Dim objRecord
Dim objField
Dim objPI1
dim objPI2
Dim blnFileExists
Set objDom=server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace=True
blnFileExists=objDom.Load(FileName)
If blnFileExists=True Then
Set objRoot=objDom.documentElement
Else
Set objRoot=objDom.createElement("学生资料表")
objDom.appendChild objRoot
End If
Set objRecord=objDom.createElement("个人资料")
objRoot.appendChild objRecord
For x=1 To Request.Form.Count
If instr(1,Request.Form.Key(x),"btn")=0 Then
Set objField=objDom.createElement(Request.Form.Key(x))
objField.Text=Request.Form(x)
objRecord.appendChild objField
End If
Next
If blnFileExists=False then
Set objPI1=objDom.createProcessingInstruction("xml","version='1.0' encoding='gb2312'")
set objPI2=objDom.createProcessingInstruction("xml:stylesheet", "type='text/xsl' href='userdata.xsl'")
objDom.insertBefore objPI1, objDom.childNodes(0)
objDom.insertBefore objPI2, objDom.childNodes(1)
End If
objDom.save FileName
End Function
On Error Resume Next
NewtoXML server.MapPath("Userdata.xml")
If err.number<>0 then
Response.write("")
End If
%>
说明:本程序已在IE浏览器上运行通过。代码中所调用的userdata.xml文件不用单独建立,程序在运行过程中会自动建立此文件。
[参考文献]
[1]范春梅.XML基础教程.人民邮电出版社,2009.
[2]孙更新,肖冰,彭玉忠.XML编程与应用教程.清华大学出版社,2009.