首页
会员中心
到顶部
到尾部
XML教程

把数据存储到 XML 文件

时间:2020/11/2 13:30:18  作者:  来源:  查看:0  评论:0
内容摘要:把数据存储到 XML 文件XML 注意事项XML 技术通常,我们在数据库中存储数据。不过,如果希望数据的可移植性更强,我们可以把数据存储 XML 文件中。创建并保存 XML 文件如果数据要被传送到非 Windows 平台上的应用程序,那么把数据保存在 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 child1rootEl.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="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 xmlDocdim rootEl,fieldName,fieldValue,attIDdim p,i'如果有错误发生,不允许程序终止On Error Resume NextSet 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 ifnext'添加 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=nothingset rootEl=nothingset fieldName=nothingset fieldValue=nothingset attID=nothingset 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>


相关评论
XML教程
本类推荐
    广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号