当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP教程:表单内容提交到XML文件中

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

ASP教程:表单内容提交到XML文件中


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 71 ::
收藏到网摘: n/a

  通常,在asp中进行的form表单提交的数据都被写进数据库中,如果你想要你的数据是便于迁移的数据,你可以把它写进一个XML文件中。这种方法是跨平台的,你所收集的信息不需要进行转换就可以转移到其他平台进行使用。

  为了实现上面的想法,你必须先利用 Microsoft.XMLDOM 建立一个XML文件,Microsoft.XMLDOM 对象有一个扩展对象库,它可以创建组成XML文件所需要的元素、属性、属性值。

  当 XMLDOM对象实例化以后,必须对各个元素进行引用来建立XML的结构,下面的例子就是先建立根元素,并把她追加到XML文件中;然后创建各个子元素,并追加元素的属性值。最后保存为XML文件。

  实例化 Microsoft XMLDOM Object:
<%
Dim objDom
Dim objRoot
Dim objChild1
Dim objChild2
Dim objPI
Set objDom = Server.CreateObject("Microsoft.XMLDOM")
Set objRoot = objDom.createElement("rootElement")
objDom.appendChild objRoot
Set objChild1 = objDom.createElement("childElement1")
objRoot.appendChild objChild1
Set objChild2 = objDom.createElement("childElement2")
objRoot.appendChild objChild2
Set objPI = objDom.createProcessingInstruction("xml","version='1.0'")
objDom.insertBefore objPI, objDom.childNodes(0)
objDom.Save "c:\MyXMLDoc.xml"
%>

  一旦你保存了文件,用IE5+打开后,样式如下[当然,属性还没有被赋值]:
  MyXMLDoc.xml:
<?xml version="1.0"?>
<rootElement>
<childElement1 />
<childElement2 />
</rootElement>

  下面我们来看看怎样利用这个对象来存储用户的输入信息。
  首先建立输入表单的页面EnterContact.html:
<head>
<title>
通讯信息
</title>
</head>
<body>
<form action="processForm.asp" method="post">
<h3>请输入您的通讯信息:</h3>
姓  名: <input type="text" id="Name" name="姓名"><br>
性  别: <input type="text" id="sexName" name="性别"><br>
地  址: <input type="text" id="address" name="地址"><br>
工作单位: <input type="text" id="company" name="工作单位"><br>
电  话: <input type="text" id="phone" name="电话"><br>
电子邮件: <input type="text" id="email" name="电子邮件"><br>
<input type="submit" id="btnSub" name="btnSub" value="提交"><br>
</form>
</body>
</html>

然后编写ASP代码,遍历表单元素,并把输入的信息写进XML文件processForm.asp:
<%
'--------------------------------------------------------------------
'函数 "ConvertFormtoXML"接收传递的参数。
'strXMLFilePath - XML存放的物理地址。
'strFileName - 要保存的XML文件的名字。
'--------------------------------------------------------------------
Function ConvertFormtoXML(strXMLFilePath, strFileName)
'定义本地变量.
Dim objDom
Dim objRoot
Dim objField
Dim objFieldValue
Dim objattID
Dim objattTabOrder
Dim objPI
Dim x
'实例化Microsoft XMLDOM对象.
Set objDom = server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace = True
'创建XML文档的根元素contact,并追加到XML文档中。
Set objRoot = objDom.createElement("通讯录")
objDom.appendChild objRoot
'遍历Request对象Form元素的集合。
For x = 1 To Request.Form.Count
If instr(1,Request.Form.Key(x),"btn") = 0 Then
'创建元素 "field".
Set objField = objDom.createElement("field")
'创建属性 "id".
Set objattID = objDom.createAttribute("id")
'设定id属性的值等于Form中各元素的值。
objattID.Text = Request.Form.Key(x)
'setAttributeNode 方法把id属性值追加到field元素。
objField.setAttributeNode objattID
'创建属性taborder。
Set objattTabOrder = objDom.createAttribute("taborder")
'设定taborder的属性值
objattTabOrder.Text = x
'把taborder的属性值追加到field元素中去。
objField.setAttributeNode objattTabOrder
'创建一个新的元素field_value.
Set objFieldValue = objDom.createElement("field_value")
'赋值
objFieldValue.Text = Request.Form(x)
'追加field元素为根元素的子元素。
objRoot.appendChild objField
'追加field_value做为子元素的内容
objField.appendChild objFieldValue
End If
Next

'创建xml声明
Set objPI = objDom.createProcessingInstruction("xml", "version='1.0' encoding='gb2312'")
'把xml生命追加到xml文档
objDom.insertBefore objPI, objDom.childNodes(0)
'保存xml文件
objDom.save strXMLFilePath & "\" & strFileName
'释放所有对象所引用的值
Set objDom = Nothing
Set objRoot = Nothing
Set objField = Nothing
Set objFieldValue = Nothing
Set objattID = Nothing
Set objattTabOrder = Nothing
Set objPI = Nothing
End Function

'发生错误时继续执行
On Error Resume Next
'调用函数ConvertFormtoXML把文件存放到指定的文件目录和文件名。
ConvertFormtoXML "D:\aspexam","Contact.xml"
'如果发生错误,提示用户,否则报告成功。
If err.number <> 0 then
Response.write("保存form值出现错误!!!")
Else
Response.write("提交成功!!")
End If
%>

  用IE5+打开Contact.xml文件。