巧用XSL和ASP在线编辑XML文档(2)
来源:爱问cpu 发布时间:2008-10-25 14:54:00
标签:xsl,xml,文档,asp
下面是关键的程序,它实现打开和更新XML文档的功能,并根据表单的提交与否,来决定是否进行更新。它包含了两个函数,loadXMLFile负责载入和转换要显示的XML文件;updateXML函数负责更新XML文件。
Edituserdata.asp程序如下:
以下为引用的内容:
<%
'-----------------------------------------------------------
'定义函数 loadXMLFile(),接收二个参数:
'strXMLFile - XML 文件的路径和文件名字
'strXSLFilee - XSL 文件的路径和文件名字
'-----------------------------------------------------------
Function loadXMLFile(strXMLFile, strXSLFile)
'Declare local variables
Dim objXML
Dim objXSL
'实例化 XMLDOM 对象,以便载入 XML 文件。
set objXML = Server.CreateObject("Microsoft.XMLDOM")
'关掉文件异步载入模式。
objXML.async = false
'载入 XML 文件!
objXML.load(strXMLFile)
'实例化 XMLDOM 对象,以便载入 XSL 文件。
set objXSL = Server.CreateObject("Microsoft.XMLDOM")
'关掉文件异步载入模式。
objXSL.async = false
'载入 XSL 文件!
objXSL.load(strXSLFile)
'利用 XMLDOM 的 transformNode 方法,把 XSL 样式表应用到 XML 文档,然后输出到客户端。
Response.Write(objXML.transformNode(objXSL))
End Function
'------------------------------------------------------------------
'函数 updateXML() 接收一个参数:strXMLFile - XML 文件的路径和文件名。
'------------------------------------------------------------------
Function updateXML(strXMLFile)
'声明局部变量。
Dim objDom
Dim objRoot
Dim objField
Dim x
'实例化 XMLDOM 对象。
set objDOM = Server.CreateObject("Microsoft.XMLDOM")
'关掉文件异步载入模式。
objDOM.async = false
'载入 XML 文件。
objDOM.load strXMLFile
'设定根元素。
Set objRoot = objDom.documentElement
'遍历 FORM 集合,并把提交的数据写入 XML 文件。
For x = 1 to Request.Form.Count
'检查提交的数据是否包含按钮。如果是,忽略此数据。
If instr(1,Request.Form.Key(x),"btn") = 0 Then
'按照 XSL 查询模式,建立 objField 变量,把表单的元素对应到 XML 文档里的相应元素[field_value]。
Set objField = objRoot.selectSingleNode("field[@id='" & Request.Form.Key(x) & "']/field_value")
'把表单提交的数据和 XML 文档里的节点值对应起来。
objField.Text = Request.Form(x)
End If
Next
'保存编辑过的 XML 文件。
objDom.save strXMLFile
'释放所有对对象的引用。
Set objDom = Nothing
Set objRoot = Nothing
Set objField = Nothing
'调用 loadXMLFile 函数,把新编辑后的 XML 文件用 updateduserdata.xsl 样式单显示到客户端。
loadXMLFile strXMLFile,server.MapPath("updateduserdata.xsl")
End Function
'检查表单是否成功提交,如提交,更新 XML 文件;否则,转到编辑状态。
If Request.Form("btnSubmit") = "" Then
loadXMLFile server.MapPath("userdata.xml"),server.MapPath("userdata.xsl")
Else
updateXML server.MapPath("userdata.xml")
End If
%>
当表单提交成功后,我们用updateduserdata.xsl来显示我们刚刚编辑的数据。
updateduserdata.xsl如下:
以下为引用的内容:
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<body>
<h1>更新后的用户资料如下:</h1>
<table border="1" cellpadding="2">
<xsl:for-each select="用户资料/field">
<tr>
<td>
<xsl:value-of select="@id" />
</td>
<td>
<xsl:value-of select="field_value" />
</td>
</tr>
</xsl:for-each>
</table>
<form>
<input type="button" value="返回" onclick="history.go(-1)" />
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
以上只是XML跨平台应用的一个简单的例子,结合具体的需求,我们可以编写功能更强大的程序来完成我们更负杂的工作。所有程序在WIN98SE+PWS+IE5.5+Netscape 4.75+Netscape 6+MSXML3.DLL环境下调试通过。


猜你喜欢
- 随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选择
- 今天想把classification_report的统计结果输出到文件中,我这里分享一下一个简洁的方式:我的pandas版本:pandas
- 实例1、取得MYSQL的版本在windows环境下安装mysql模块用于python开发MySQL-python Windows下EXE安装
- 这篇文章主要介绍了python如果快速判断数字奇数偶数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 1.确保系统中有依赖的libaio 软件,如果没有: yum -y
- 序言那个猥琐的家伙整天把个U盘藏着当宝,到睡觉了就拿出来插到电脑上。我决定想个办法看他U盘里都藏了什么,直接去抢U盘是不可能的,骗也是不可能
- 本文实例讲述了Python操作MySQL简单实现方法。分享给大家供大家参考。具体分析如下:一、安装:安装MySQL安装MySQL不用多说了,
- 1.cookie的作用cookie 是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据,就像有些网站上的一些数
- 引入:通常,钓鱼网站本质是本质搭建一个跟正常网站一模一样的页面,用户在该页面上完成转账功能转账的请求确实是朝着正常网站的服务端提交,唯一不同
- 当初次在机器上安装完Mysql时,你可以匿名进行访问数据库或者以不带口令的root身份进入数据库.另外如果你是一个管理员,你还要进行一些用户
- 先给大家讲解一下什么是kalikali是一种Linux系统,kali是专门用来渗透的,他是由back track系统演化而来的,后面结合了l
- 本文实例讲述了MySql采用GROUP_CONCAT合并多条数据显示的方法,分享给大家供大家参考。具体实现方法如下:假设有这样一个需求:1:
- 创建一个SpringBoot项目其他不赘叙了,引入MyBaties、MySql依赖创建mysql表CREATE TABLE sp_users
- window.location="aaa.aspx" 上面的方法只能在当前页打开,如果要在新的页面打开,最简单的是用以下
- 说明:这里仅展示在已经获取图片链接后的下载方式,对于爬虫获取链接部分参考前面的文章1、利用文件读写的方式下载图片#第一种:用urllib2模
- 在使用Pytorch进行神经网络训练时,有时会遇到训练学习率不下降的问题。出现这种问题的可能原因有很多,包括学习率过小,数据没有进行Norm
- 需求场景,五百个文件里面,选取50个指定文件,放入新的文件夹里。1、准备工作1 安装python环境可能会报错,并且pip install
- 前言首先,我们开发的项目会有多个版本.其次,我们的项目版本会随着更新越来越多,我们不可能因出了新版本就不维护旧版本了.那么,我们就需要对版本
- 对range()逆序的解释在 Python3.6 中,range() 函数返回一个可迭代的范围对象,范围类型表示不可变的数字序列,一般用在
- 数据库账号密码加密详解及实例数据库中经常有对数据库账号密码的加密,但是碰到一个问题,在使用UserService对密码进行加密的时候,spr