• 把数据存储到 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:	est.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="firstName" name="firstName"></p>
    
    <label>姓氏: </label>
    <p><input type="text" id="lastName" name="lastName"></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>David</value> 
      </field>
      <field id="lastName">
        <value>Smith</value> 
      </field>
      <field id="country">
        <value>China</value> 
      </field>
      <field id="email">
        <value>mymail@myaddress.com</value> 
      </field>
    </customer>
  • 相关阅读:
    Python3安装和虚拟环境配置
    CentOS中nginx安装部署
    CRM项目的整理---第一篇
    软件代码的发布
    ansible的roles使用
    ansible中的playbook脚本的介绍与使用
    ansible模块的介绍与使用
    Ansible的参数介绍
    ansible的介绍与安装
    linux网络配置,查看IP地址
  • 原文地址:https://www.cnblogs.com/furuihua/p/11383786.html
Copyright © 2020-2023  润新知