设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: 刺猬宫 >> 网络编程 >> XML >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
XML入门教程:验证XML是合…
XML入门教程:XML 浏览器…
XML入门教程:使用CSS显示…
XML入门教程:使用XSL显示…
XML入门教程:现实生活中…
XML入门教程:XML 解析器
XML入门教程:XML CDATA
XML入门教程:服务器上的…
XML入门教程:XML DHTML …
将XML结点转换成JAVABEA…
  XML入门教程:向XML文件存储数据           
XML入门教程:向XML文件存储数据
 

通常,我们在数据库中存储数据。不过,如果希望数据的可移植性更强,我们可以把数据存储XML文件中。

创建并保存XML文件

如果数据要被传送到非Windows平台上的应用程序,那么把数据保存在XML文件中是有好处的。请记住,XML有很强的跨平台可移植性,并且数据无需转换!

首先,我们将学习如何创建并保存一个XML文件。下面的这个XML文件将被命名为"test.xml",并被保存在服务器上的c目录中。我们将使用ASP和微软的XMLDOM对象来创建并保存这个XML文件:

<%

Dim xmlDoc, rootEl, child1, child2, p

'创建XML文档

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

'创建根元素并将之加入文档

Set rootEl = xmlDoc.createElement("root")

xmlDoc.appendChild rootEl

'创建并加入子元素

Set child1 = xmlDoc.createElement("child1")

Set child2 = xmlDoc.createElement("child2")

rootEl.appendChild child1

rootEl.appendChild child2

'创建 XML processing instruction

'并把它加到根元素之前

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

xmlDoc.insertBefore p,xmlDoc.childNodes(0)

'把文件保存到c目录

xmlDoc.Save "c:\test.xml"

%>

如果您打开这个被保存的文件,它会使这个样子("test.xml"):

<?xml version="1.0"?>

<root>

  <child1 />

  <child2 />

</root>

真实的表单例子

现在,我们看一个真实的表单例子。

我们首先看一下这个被用在例子中的HTML表单:下面的HTML表单要求用户输入他们的名字、国籍以及电子邮件地址。随后这些信息会被写到一个XML文件,以便存储。

"customers.htm":

<html>

<body>

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

<h1>请输入您的联系信息:</h1>

<label>名字: </label>

<p><input type="text" id="fname" name="fname"></p>

<label>姓氏: </label>

<p><input type="text" id="lname" name="lname"></p>

<label>国家: </label>

<p><input type="text" id="country" name="country"></p>

<label>邮件: </label>

<p><input type="text" id="email" name="email"></p>

<p>

<input type="submit" id="btn_sub" name="btn_sub" value="Submit">

<input type="reset" id="btn_res" name="btn_res" value="Reset">

</p>

</form>

</body>

</html>

用于以上HTML表单的action被设置为"saveForm.asp"。"saveForm.asp"文件是一个ASP页面,可循环遍表单域,并把它们的值存储在一个XML文件之中:

<%

dim xmlDoc

dim rootEl,fieldName,fieldValue,attID

dim p,i

'如果有错误发生,不允许程序终止

On Error Resume Next

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

xmlDoc.preserveWhiteSpace=true

'创建并向文档添加根元素

Set rootEl = xmlDoc.createElement("customer")

xmlDoc.appendChild rootEl

'循环遍历Form集

for i = 1 To Request.Form.Count

  '除去表单中的button元素

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

    '创建field 和 value 元素,以及 id 属性

    Set fieldName = xmlDoc.createElement("field")

    Set fieldValue = xmlDoc.createElement("value")

    Set attID = xmlDoc.createAttribute("id")

    '把当前表单域的名称设置为id属性的值

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

    '把id属性添加到field元素

    fieldName.setAttributeNode attID

    '把当前表单域的值设置为value元素的值

    fieldValue.Text = Request.Form(i)

    '将field元素作为根元素的子元素进行添加

    rootEl.appendChild fieldName

    '将value元素作为field元素的子元素进行添加

    fieldName.appendChild fieldValue

  end if

next

'添加XML processing instruction

'并把它加到根元素之前

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

xmlDoc.insertBefore p,xmlDoc.childNodes(0)

'保存XML文件

xmlDoc.save "c:\Customer.xml"

'释放所有的对象引用

set xmlDoc=nothing

set rootEl=nothing

set fieldName=nothing

set fieldValue=nothing

set attID=nothing

set p=nothing

'测试是否有错误发生

if err.number<>0 then

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

else

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

end if

%>

注释:如果被指定的XML文件名已经存在,那个文件会被覆盖!

XML文件会由上面的代码生成,大致的样子是这样的:("Customer.xml"):

<?xml version="1.0" ?>

<customer>

  <field id="firstName">

    <value>Hege</value> 

  </field>

  <field id="lastName">

    <value>Refsnes</value> 

  </field>

  <field id="country">

    <value>Norway</value> 

  </field>

  <field id="email">

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

  </field>

</customer>

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-7-13 15:48:00
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持