奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 程序开发 >> XML >> 把HTML表单提交的数据转化成XML文件
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
  • VB中使用WinSock控件传

  • VB API函数介绍——控

  • VB从零开始编外挂(完整

  • VB.Net实现Web Servic

  • 老树新芽 体验Visual 

  • vb中利用xmlhttp来下载

  • vb中使用正则表达式

  • ASP.NET中Cookie编程的

  • 把HTML表单提交的数据转化成XML文件
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-22

      通常,在asp中进行的form表单提交的数据都被写进数据库管理系统中去,如果你想要你的数据是方便携带的数据,你可以把它写进一个XML文件中去。这种方法是跨平台的,因此你所收集的信息不需要进行转换。
      为了实现上面的想法,你必须先利用Microsoft XMLDOM建立一个XML文件,Microsoft XMLDOM对象有一个扩展对象库,它可以创建组成XML文件所需要的元素、属性、属性值。
      当XMLDOM对象实例化以后,必须对各个元素进行引用来建立XML的结构,下面的例子就是先建立根元素,并把她追加到XML文件中;然后创建各个子元素,并追加元素的属性值。最后保存为XML文件。

      实例化 Microsoft XMLDOM Object:

    <%
    Dim objDom
    Dim objRoot
    Dim objChild1
    Dim objChild2
    Dim objPI
    Set objDom = Server.CreateObject("Microsoft.XMLDOM")
    Set objRoot = objDom.createElement("rootElement")

    objDom.appendChild objRoot
    Set objChild1 = objDom.createElement("childElement1")

    objRoot.appendChild objChild1
    Set objChild2 = objDom.createElement("childElement2")

    objRoot.appendChild objChild2

    Set objPI = objDom.createProcessingInstruction("xml","version=''1.0''")
    objDom.insertBefore objPI, objDom.childNodes(0)
    objDom.Save "c:\MyXMLDoc.xml"
    %>

      一旦你保存了文件,用IE5+打开后,样式如下[当然,属性还没有被赋值]:

      MyXMLDoc.xml:

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



      下面我们来看看怎样利用这个对象来存储用户的输入信息。

      首先建立输入表单的页面。EnterContact.html:

    <html>
    <head>
    <title>
    通讯信息
    </title>
    </head>
    <body>
    <form action="processForm.asp" method="post">
    <h3>请输入您的通讯信息:</h3>
    姓  名: <input type="text" id="Name" name="姓名"><br>
    性  别: <input type="text" id="sexName" name="性别"><br>
    地  址: <input type="text" id="address" name="地址"><br>
    工作单位: <input type="text" id="company" name="工作单位"><br>
    电  话: <input type="text" id="phone" name="电话"><br>
    电子邮件: <input type="text" id="email" name="电子邮件"><br>
    <input type="submit" id="btnSub" name="btnSub" value="提交"><br>
    </form>
    </body>
    </html>



      然后编写ASP代码,遍历表单元素,并把输入的信息写进XML文件。processForm.asp:

    <%
    ''--------------------------------------------------------------------
    ''函数 "ConvertFormtoXML"接收传递的参数。
    ''strXMLFilePath - XML存放的物理地址。
    ''strFileName - 要保存的XML文件的名字。
    ''--------------------------------------------------------------------

    Function ConvertFormtoXML(strXMLFilePath, strFileName)
    ''定义本地变量.
    Dim objDom
    Dim objRoot
    Dim objField
    Dim objFieldValue
    Dim objattID
    Dim objattTabOrder
    Dim objPI
    Dim x

    ''实例化Microsoft XMLDOM对象.
    Set objDom = server.CreateObject("Microsoft.XMLDOM")
    objDom.preserveWhiteSpace = True

    ''创建XML文档的根元素contact,并追加到XML文档中。
    Set objRoot = objDom.createElement("通讯录")
    objDom.appendChild objRoot

    ''遍历Request对象Form元素的集合。
    For x = 1 To Request.Form.Count

    If instr(1,Request.Form.Key(x),"btn") = 0 Then

    ''创建元素 "field".
    Set objField = objDom.createElement("field")

    ''创建属性 "id".
    Set objattID = objDom.createAttribute("id")

    ''设定id属性的值等于Form中各元素的值。
    objattID.Text = Request.Form.Key(x)

    ''setAttributeNode 方法把id属性值追加到field元素。
    objField.setAttributeNode objattID

    ''创建属性taborder。
    Set objattTabOrder = objDom.createAttribute("taborder")

    ''设定taborder的属性值
    objattTabOrder.Text = x

    ''把taborder的属性值追加到field元素中去。
    objField.setAttributeNode objattTabOrder

    ''创建一个新的元素field_value.
    Set objFieldValue = objDom.createElement("field_value")

    ''赋值
    objFieldValue.Text = Request.Form(x)

    ''追加field元素为根元素的子元素。
    objRoot.appendChild objField

    ''追加field_value做为子元素的内容
    objField.appendChild objFieldValue
    End If
    Next


    ''创建xml声明
    Set objPI = objDom.createProcessingInstruction("xml", "version=''1.0'' encoding=''gb2312''")

    ''把xml生命追加到xml文档
    objDom.insertBefore objPI, objDom.childNodes(0)

    ''保存xml文件
    objDom.save strXMLFilePath & "\" & strFileName

    ''释放所有对象所引用的值
    Set objDom = Nothing
    Set objRoot = Nothing
    Set objField = Nothing
    Set objFieldValue = Nothing
    Set objattID = Nothing
    Set objattTabOrder = Nothing
    Set objPI = Nothing
    End Function


    ''发生错误时继续执行
    On Error Resume Next

    ''调用函数ConvertFormtoXML把文件存放到指定的文件目录和文件名。
    ConvertFormtoXML "D:\aspexam","Contact.xml"

    ''如果发生错误,提示用户,否则报告成功。
    If err.number <> 0 then
    Response.write("保存form值出现错误!!!")
    Else
    Response.write("提交成功!!")
    End If
    %>


    用IE5+打开Contact.xml文件,会看到如下所示:

    <?xml version="1.0" encoding="gb2312" ?>
    <通讯录>
    <field id="姓名" taborder="1">
    <field_value>孟宪会</field_value>
    </field>
    <field id="性别" taborder="2">
    <field_value>男</field_value>
    </field>
    <field id="地址" taborder="3">
    <field_value>北京建外大街甲24号</field_value>
    </field>
    <field id="工作单位" taborder="4">
    <field_value>环球.中国</field_value>
    </field>
    <field id="电话" taborder="5">
    <field_value>13910309xxx</field_value>
    </field>
    <field id="电子邮件" taborder="6">
    <field_value>amxh@21cn.com</field_value>
    </field>
    </通讯录>

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.