敬业的IT人 >> 网站建设 >> Web编程 >> Asp >> 将HTML表单数据存储为XML格式 - 2

将HTML表单数据存储为XML格式 - 2

敬业的IT人 互联网 佚名 2008-4-14 17:17:05
文档被存档之后,如果你再打开这个文档,那么则会以如下代码列表形式出现:

Myxml(标准化越来越近了)Doc.xml(标准化越来越近了):

<?xml(标准化越来越近了) version="1.0"?>
<rootElement>
<childElement1 />
<childElement2 />
</rootElement>

  在"Myxml(标准化越来越近了)Doc.xml(标准化越来越近了)"文档中,childElement1 和 childElement2 会以空的elements形式出现。如果它们被赋值,那么每
个值都将由标记符括起来。

  现在,让我们来思考一下如何将HTML数据写到xml(标准化越来越近了)文档中去。我们已经知道该如何创建和存储xml(标准化越来越近了)文档。将一个表单数
据写到xml(标准化越来越近了)文档中去的过程,现在已演变成为Request Object"s Form Collection以及将每一个表单域的value书定到xml(标准化越来越近了)
element value 中去的步骤重复。以上可以通过ASP来完成。

例:将数据输送到xml(标准化越来越近了)

  现在,我们举一个普通的HTML表单的例子来说明。此Form有用户名,地址,电话,以及E-MAIL等几个域。并将这些信
息写入xml(标准化越来越近了)文件中并保存。

EnterContact.html:
<html>
<head>
<title>
Contact Information
</title>
</head>
<body>
<form action="processForm.asp" method="post">

<h3>请输入你的联系方式</h3>
First Name: <input type="text" id="firstName" name="firstName"><br>
Last Name: <input type="text" id="lastName" name="lastName"><br>
Address #1: <input type="text" id="address1" name="address1"><br>
Address #2: <input type="text" id="address2" name="address2"><br>
Phone Number: <input type="text" id="phone" name="phone"><br>
E-Mail: <input type="text" id="email" name="email"><br>
<input type="submit" id="btnSub" name="btnSub" value="Submit"><br>
</form>
</body>
</html>

  将Form 中数据发送到processForm.asp.。这是一个ASP页面,在这个ASP中将反复调用同一个函数将form数据写入xml(标准化越来越近了)
文件。

processForm.asp:

<%
"--------------------------------------------------------------------
"The "ConvertFormtoxml(标准化越来越近了)" Function accepts to parameters.
"strxml(标准化越来越近了)FilePath - The physical path where the xml(标准化越来越近了) file will be saved.
"strFileName - The name of the xml(标准化越来越近了) file that will be saved.
"--------------------------------------------------------------------

Function ConvertFormtoxml(标准化越来越近了)(strxml(标准化越来越近了)FilePath, strFileName)

"Declare local variables.

Dim objDom
Dim objRoot
Dim objField
Dim objFieldValue
Dim objattID
Dim objattTabOrder
Dim objPI
Dim x

"Instantiate the Microsoft xml(标准化越来越近了)DOM.

Set objDom = server.CreateObject("Microsoft.xml(标准化越来越近了)DOM")

objDom.preserveWhiteSpace = True

"Create your root element and append it to the xml(标准化越来越近了) document.

Set objRoot = objDom.createElement("contact")
objDom.appendChild objRoot

"Iterate through the Form Collection of the Request Object.

For x = 1 To Request.Form.Count

"Check to see if "btn" is in the name of the form element.
"If it is, then it is a button and we do not want to add it
"to the xml(标准化越来越近了) document.

If instr(1,Request.Form.Key(x),"btn") = 0 Then

"Create an element, "field".

Set objField = objDom.createElement("field")

"Create an attribute, "id".

Set objattID = objDom.createAttribute("id")

"Set the value of the id attribute equal the the name of

"the current form field.

objattID.Text = Request.Form.Key(x)

"The setAttributeNode method will append the id attribute


"to the field element.

objField.setAttributeNode objattID

"Create another attribute, "taborder". This just orders the
"elements.

Set objattTabOrder = objDom.createAttribute("taborder")

"Set the value of the taborder attribute.

objattTabOrder.Text = x

"Append the taborder attribute to the field element.

objField.setAttributeNode objattTabOrder

"Create a new element, "field_value".

Set objFieldValue = objDom.createElement("field_value")

"Set the value of the field_value element equal to
"the value of the current field in the Form Collection.

objFieldValue.Text = Request.Form(x)

"Append the field element as a child of the root element.

objRoot.appendChild objField

"Append the field_value element as a child of the field elemnt.

objField.appendChild objFieldValue
End If
Next

"Create the xml(标准化越来越近了) processing instruction.

Set objPI = objDom.createProcessingInstruction("xml(标准化越来越近了)", "version="1.0"")

"Append the processing instruction to the xml(标准化越来越近了) document.

objDom.insertBefore objPI, objDom.childNodes(0)

"Save the xml(标准化越来越近了) document.

objDom.save strxml(标准化越来越近了)FilePath & "\" & strFileName

"Release all of your object references.

Set objDom = Nothing
Set objRoot = Nothing
Set objField = Nothing
Set objFieldValue = Nothing
Set objattID = Nothing
Set objattTabOrder = Nothing
Set objPI = Nothing
End Function

"Do not break>
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com