XML 保存数据

 

Usually, we save data in databases. However, if we want to make the data more portable, we can store the data in an XML file.

通常,我们把数据保存在数据库里。然而,如果想让数据更易于传送,可以把数据存在XML文件里。


Create and Save an XML File

创建和保存XML文件

Storing data in XML files is useful if the data is to be sent to applications on non-Windows platforms. Remember that XML is portable across all platforms and the data will not need to be converted!

如果数据要被发送到非Windows平台上,那么把数据存在XML文件里是非常有用的。要记得XML在所有平台上都可以传送数据,而且数据是不需要转换的。

First we will learn how to create and save an XML file. The XML file below will be named "test.xml" and will be stored in the c directory on the server. We will use ASP and Microsoft's XMLDOM object to create and save the XML file:

首先我们要学习如何创建和保存一份XML文件。下面的XML文件将被命名为"test.xml",并被存在服务器的C目录区域下,我们将用ASP 和Microsoft's XMLDOM来创建和保存XML文件:

<%

Dim xmlDoc, rootEl, child1, child2, p

'Create an XML document

Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")

'Create a root element and append it to the document

Set rootEl = xmlDoc.createElement("root")

xmlDoc.appendChild rootEl

'Create and append child elements

Set child1 = xmlDoc.createElement("child1")

Set child2 = xmlDoc.createElement("child2")

rootEl.appendChild child1

rootEl.appendChild child2

'Add an XML processing instruction

'and insert it before the root element

Set p=xmlDoc.createProcessingInstruction("xml","version='1.0'")

xmlDoc.insertBefore p,xmlDoc.childNodes(0)

'Save the XML file to the c directory

xmlDoc.Save "c:/test.xml"

%>

If you open the saved XML file it will look something like this ("test.xml"):

如果你打开保存好的XML文件会看到象这样的东西:

<?xml version="1.0"?>

<root>

<child1 />

<child2 />

</root>


Real Form Example

实际表单举例

Now, we will look at a real HTML form example.

现在,我们看一下一个实际的HTML表单的例子。

We will first look at the HTML form that will be used in this example: The HTML form below asks for the user's name, country, and e-mail address. This information will then be written to an XML file for storage.

首先,我们看看这个例子中HTML表单的使用方法:下面的HTML表单要用户的姓名,国籍和e-mail地址,这个信息会写到XML文件中并被储存起来。

"customers.htm":

<html>

<body>

<form action="saveForm.asp" method="post">

<p><b>Enter your contact information</b></p>

First Name: <input type="text" ><br />

Last Name: <input type="text" ><br />

Country: <input type="text" ><br />

Email: <input type="text" ><br />

<input type="submit" value="Submit">

<input type="reset" value="Reset">

</form>

</body>

</html>

The action for the HTML form above is set to "saveForm.asp". The "saveForm.asp" file is an ASP page that will loop through the form fields and store their values in an XML file:

对上面HTML表单的action已经设置为"saveForm.asp"。"saveForm.asp"文件是一份ASP页面,会在整个表格区域进行循环,并把它们的值存入XML文件里:

<%

dim xmlDoc

dim rootEl,fieldName,fieldValue,attID

dim p,i

'Do not stop if an error occurs

On Error Resume Next

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

xmlDoc.preserveWhiteSpace=true

'Create a root element and append it to the document

Set rootEl = xmlDoc.createElement("customer")

xmlDoc.appendChild rootEl

'Loop through the form collection

for i = 1 To Request.Form.Count

'Eliminate button elements in the form

if instr(1,Request.Form.Key(i),"btn_")=0 then

'Create a field and a value element, and an id attribute

Set fieldName = xmlDoc.createElement("field")

Set fieldValue = xmlDoc.createElement("value")

Set attID = xmlDoc.createAttribute("id")

'Set the value of the id attribute equal to the name of

'the current form field

attID.Text = Request.Form.Key(i)

'Append the id attribute to the field element

fieldName.setAttributeNode attID

'Set the value of the value element equal to

'the value of the current form field

fieldValue.Text = Request.Form(i)

'Append the field element as a child of the root element

rootEl.appendChild fieldName

'Append the value element as a child of the field element

fieldName.appendChild fieldValue

end if

next

'Add an XML processing instruction

'and insert it before the root element

Set p = xmlDoc.createProcessingInstruction("xml","version='1.0'")

xmlDoc.insertBefore p,xmlDoc.childNodes(0)

'Save the XML file

xmlDoc.save "c:/Customer.xml"

'Release all object references

set xmlDoc=nothing

set rootEl=nothing

set fieldName=nothing

set fieldValue=nothing

set attID=nothing

set p=nothing

'Test to see if an error occurred

if err.number<>0 then

response.write("Error: No information saved.")

else

response.write("Your information has been saved.")

end if

%>

Note: If the XML file name specified already exists, it will be overwritten!

注意: 如果指定的XML文件名已经存在,它将会被覆盖。

The XML file that will be produced by the code above will look something like this ("Customer.xml"):

通过上述代码书写的XML文件,看起来就像这样("Customer.xml"):

<?xml version="1.0" ?>

<customer>

<field >

<value>Hege</value>

</field>

<field >

<value>Refsnes</value>

</field>

<field >

<value>Norway</value>

</field>

<field >

<value>mymail@myaddress.com</value>

</field>

</customer>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值