• 奇爱公告:
  • 设为首页
  • |
  • 收藏本站
  • |
  • RSS阅读
  • |
  • 网站地图
  • |
  • 站内搜索
  • 奇爱素材网

  • 首页 酷站 PNG 矢量 GIF 笔刷 背景 PSD 欣赏 代码 FLA 教程 图库 书店
  • 您现在的位置: 奇爱素材网 >> 设计教程 >> 语言开发 >> XML >> 正文 |
  • XML入门教程:向XML文件存储数据

    作者:佚名 素材来源:网页教学网 点击数: 更新时间:2007-8-17 20:27:57

    通常,我们在数据库中存储数据。不过,如果希望数据的可移植性更强,我们可以把数据存储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>
  • 上一篇教程: XML入门教程:XML DHTML 行为
  • 下一篇教程: XML入门教程:服务器上的XML
    • 提点建议 | 友情链接 | 广告服务 | 免责声明 | 联系我们 | 网站地图 | RSS阅读
      Copyright © 2006-2008 Www.72sc.coM, All Rights Reserved 版权所有 奇爱素材网 鄂ICP备07010427号
      ++技术交流QQ群号码:1226944 ++业务联系QQ:19295971