|
以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XML源码及示例(仅原创和转载) 』 (http://bbs.xml.org.cn/list.asp?boardid=32) ---- 将HTML表单数据存储为XML格式 (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=8376) |
|
-- 作者:hsower -- 发布时间:6/19/2004 2:10:00 PM -- 将HTML表单数据存储为XML格式 将表单数据存为XML格式 通常的,ASP中表单提交的数据一般被写入数据库。然而,如果你想让发送数据更为简便易行,那么,可以将它书写为XML文件格式。这种方式对于在web上收集的数据更为有用。因为XML对于所用平台来说非常的简便,所以用不着转换数据格式。 将提交的数据写为XML文档,则需要通过Microsoft XMLDOM Object创建一个新的XML文档。Microsoft XMLDOM Object拥有一个可扩展对象库,通过它可以创建elements,attributes以及values,通过创建的这些项目则可以组成XML文档。我无法将整个目标模型做个完整的介绍,因为它所包含的内容太广泛,对于将建成的网站来说,目标模型甚至通过自身也能组建一个相对完整的部份。 在XMLDOM Object被创建出来之后,通过创建目标(此目标是关于组成XML文档中每一层的ELEMENTS而言)XML的结构会被演示出来。接下来,会举例说明XMLDOM是怎样被创建出来的。创建root element之后,将它附加在XMLDOM文件上。然后创建child elements并附加在root element上,最后存储文档。 演示Microsoft XMLDOM 对象 <% Dim objDom " XMLDOM 对象使用Server对象的CreateObject方法创建 Set objRoot = objDom.createElement("rootElement") "Use the appendChild Method of the XMLDOM Object to add the objRoot objDom.appendChild objRoot "Now, following the same steps, you will create references to the Set objChild1 = objDom.createElement("childElement1") "The final step to take care of before saving this document is to add Set objPI = objDom.createProcessingInstruction("xml","vertsion="1.0"") "Call the insertBefore Method of the XMLDOM Object in order to insert objDom.insertBefore objPI, objDom.childNodes(0) "Calling the Save Method of the XMLDOM Object will save this XML objDom.Save "c:\MyXMLDoc.xml" %> 文档被存档之后,如果你再打开这个文档,那么则会以如下代码列表形式出现: MyXMLDoc.xml: <?xml version="1.0"?> 在"MyXMLDoc.xml"文档中,childElement1 和 childElement2 会以空的elements形式出现。如果它们被赋值,那么每个值都将由标记符括起来。 现在,让我们来思考一下如何将HTML数据写到XML文档中去。我们已经知道该如何创建和存储XML文档。将一个表单数据写到XML文档中去的过程,现在已演变成为Request Object"s Form Collection以及将每一个表单域的value书定到XML element value 中去的步骤重复。以上可以通过ASP来完成。 例:将数据输送到XML 现在,我们举一个普通的HTML表单的例子来说明。此Form有用户名,地址,电话,以及E-MAIL等几个域。并将这些信息写入XML文件中并保存。 EnterContact.html: <h3>请输入你的联系方式</h3> 将Form 中数据发送到processForm.asp.。这是一个ASP页面,在这个ASP中将反复调用同一个函数将form数据写入XML文件。 processForm.asp: <% Function ConvertFormtoXML(strXMLFilePath, strFileName) "Declare local variables. Dim objDom "Instantiate the Microsoft XMLDOM. Set objDom = server.CreateObject("Microsoft.XMLDOM") objDom.preserveWhiteSpace = True "Create your root element and append it to the XML document. Set objRoot = objDom.createElement("contact") "Iterate through the Form Collection of the Request Object. For x = 1 To Request.Form.Count "Check to see if "btn" is in the name of the form element. If instr(1,Request.Form.Key(x),"btn") = 0 Then "Create an element, "field". Set objField = objDom.createElement("field") "Create an attribute, "id". Set objattID = objDom.createAttribute("id") "Set the value of the id attribute equal the the name of "the current form field. objattID.Text = Request.Form.Key(x) "The setAttributeNode method will append the id attribute objField.setAttributeNode objattID "Create another attribute, "taborder". This just orders the Set objattTabOrder = objDom.createAttribute("taborder") "Set the value of the taborder attribute. objattTabOrder.Text = x "Append the taborder attribute to the field element. objField.setAttributeNode objattTabOrder "Create a new element, "field_value". Set objFieldValue = objDom.createElement("field_value") "Set the value of the field_value element equal to objFieldValue.Text = Request.Form(x) "Append the field element as a child of the root element. objRoot.appendChild objField "Append the field_value element as a child of the field elemnt. objField.appendChild objFieldValue "Create the xml processing instruction. Set objPI = objDom.createProcessingInstruction("xml", "version="1.0"") "Append the processing instruction to the XML document. objDom.insertBefore objPI, objDom.childNodes(0) "Save the XML document. objDom.save strXMLFilePath & "\" & strFileName "Release all of your object references. Set objDom = Nothing "Do not break on an error. On Error Resume Next "Call the ConvertFormtoXML function, passing in the physical path to ConvertFormtoXML "c:","Contact.xml" "Test to see if an error occurred, if so, let the user know. If err.number <> 0 then 如果你是在你自己的应用程序中使用以上代码,请谨记一件事情,在"ConvertFormtoXML"函数已经运行的情况下,如果XML文件名已经存在,那么,文件将会被覆盖。在此,我建议在使用"ConvertFormtoXML"功能前,最好用随机建立的文件名。这样,就将有价值数据被改写的风险降为零。 关于XML文件的产生,举例如下: Contact.xml <?xml version="1.0" ?> 我在此建议:将以上代码复制到你个人网站服务器上的同名页面上,并运行以上示例时。请一定要明确你使用的是对你个人服务器有效的路径和文件名。 当你一切准备好时,请再次检验你的XML文件。 |
|
-- 作者:jsxiaojun -- 发布时间:6/20/2005 11:03:00 AM -- good |
|
-- 作者:diddl -- 发布时间:6/23/2005 2:36:00 AM -- 顶..................... 恳求类似的JSP源码.......................... |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |