日期:2011-01-27  浏览次数:20799 次

文档被存档之后,如果你再打开这个文档,那么则会以如下代码列表形式出现:

MyXMLDoc.xml:

<?xml version="1.0"?>
<rootElement>
<childElement1 />
<childElement2 />
</rootElement>

  在"MyXMLDoc.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.
"strXMLFilePath - The physical path where the XML file will be saved.
"strFileName - The name of the XML file that will be saved.
"--------------------------------------------------------------------

Function ConvertFormtoXML(strXMLFilePath, strFileName)

"Declare local variables.

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

"Instantiate the Microsoft XMLDOM.

Set objDom = server.CreateObject("Microsoft.XMLDOM")

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 e