知识大全 利用XSL和ASP实现XML文档在线编辑

Posted 文件

篇首语:所谓活着的人,就是不断挑战的人,不断攀登命运险峰的人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用XSL和ASP实现XML文档在线编辑相关的知识,希望对你有一定的参考价值。

利用XSL和ASP实现XML文档在线编辑  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本文通过一个详细的例子 来阐述了在线编辑XML文档数据的方法 由于Netscape对XML的支持比较弱 因此 要实现跨平台的数据交换 数据的处理必须在服务器端进行 要编辑XML文档 首先要做的事情就是怎样把这些数据提取并显示给访问者 XSL为我们显示XML文件提供了一个很好的解决方案 下面的例子就是利用XSL样式单把XML文档显示出来 供用户进行编辑 然后再把编辑后的数据提交到服务器 在服务器端进行数据的更新 这里采用ASP(Active Server Pages)来完成我们的任务     首先 载入我们要进行编辑的XML文档 利用微软的文档对象模型(Microsoft XMLDOM Object)和XSL XML文档就可以在服务器端转换成可以在客户端显示的HTML文件内容 下面先看看我们使用的XML和XSL文件是什么样子的     XML文件 UserData xml    <?xml version= encoding= gb ?>  <! edited with XMLSPY v rel U () by Dicky (Apple S Eden) >  <UserInfo>  <Field ID= Name TabOrder= >  <FieldValue>Dicky</FieldValue>  </Field>  <Field ID= Sex TabOrder= >  <FieldValue>Male</FieldValue>  </Field>  <Field ID= UnitName TabOrder= >  <FieldValue>ShangHai Ateam Company</FieldValue>  </Field>  <Field ID= Address TabOrder= >  <FieldValue>ShangHai ZhongShan West Road # Room A</FieldValue>  </Field>  <Field ID= Tel TabOrder= >  <FieldValue> </FieldValue>  </Field>  <Field ID= EMail TabOrder= >  <FieldValue>AppleBBS@GMail Com</FieldValue>  </Field>  </UserInfo>    XSL文件 UserData xsl    <?xml version= encoding= gb ?>  <! edited with XMLSPY v rel U () by Dicky (Apple S Eden) >  <xsl:stylesheet xmlns:xsl= xsl >  <xsl:template match= / >  <>  <meta equiv= Content Type content= text/; charset=gb />  <body>  <form method= post action= EditUserData asp >  <h >Edit UserInfo </h >  <table border= cellpadding= >  <xsl:for each select= UserInfo/Field >  <tr>  <td>  <xsl:value of select= @ID />  </td>  <td>  <input type= text >  <xsl:attribute name= ID ><xsl:value of select= @ID /></xsl:attribute>  <xsl:attribute name= Name ><xsl:value of select= @ID /></xsl:attribute>  <xsl:attribute name= Value ><xsl:value of select= FieldValue /></xsl:attribute>  </input>  </td>  </tr>  </xsl:for each>  </table>  <br/>  <input type= submit id= btnSubmit name= btnSubmit value= Edit />  </form>  </body>  </>  </xsl:template>  </xsl:stylesheet>    XSL文件使用了XSL for each元素的来遍历整个XML文件 XML文件里每个 field 元素的 id 属性和HTML表单的文本输入框的 id 和 name 相对应 这样 HTML表单的文本输入框就显示出了XML文件的元素值 此文件负责XML文档在服务器端的转换 以便能在各种浏览器上显示     下面是关键的程序 它实现打开和更新XML文档的功能 并根据表单的提交与否 来决定是否进行更新 它包含了两个函数 loadXMLFile负责载入和转换要显示的XML文件 updateXML函数负责更新XML文件     EditUserData asp程序如下:    <%      定义函数 LoadXMLFile() 接收二个参数    strXMLFile XML 文件的路径和文件名字   strXSLFilee XSL 文件的路径和文件名字     Function LoadXMLFile(strXMLFile strXSLFile)   Declare local variables  Dim objXML  Dim objXSL   实例化 XMLDOM 对象 以便载入 XML 文件   Set objXML = Server CreateObject( Microsoft XMLDOM )   关掉文件异步载入模式   objXML Async = False   载入 XML 文件!  objXML Load(strXMLFile)   实例化 XMLDOM 对象 以便载入 XSL 文件   Set objXSL = Server CreateObject( Microsoft XMLDOM )   关掉文件异步载入模式   objXSL Async = False   载入 XSL 文件!  objXSL Load(strXSLFile)   利用 XMLDOM 的 transformNode 方法 把 XSL 样式表应用到 XML 文档 然后输出到客户端   Response Write(objXML TransFormNode(objXSL))  End Function      函数 updateXML() 接收一个参数 strXMLFile XML 文件的路径和文件名      Function UpdateXML(strXMLFile)   声明局部变量   Dim objDom  Dim objRoot  Dim objField  Dim x   实例化 XMLDOM 对象   Set objDOM = Server CreateObject( Microsoft XMLDOM )   关掉文件异步载入模式   objDom Async = False   载入 XML 文件   objDom Load strXMLFile   设定根元素   Set objRoot = objDom DocumentElement   遍历 FORM 集合 并把提交的数据写入 XML 文件   For x = To Request Form Count   检查提交的数据是否包含按钮 如果是 忽略此数据   If Instr( Request Form Key(x) btn ) = Then   按照 XSL 查询模式 建立 objField 变量 把表单的元素对应到 XML 文档里的相应元素[field_value]   Set objField = objRoot SelectSingleNode( Field[@ID= & Request Form Key(x) & ]/FieldValue )   把表单提交的数据和 XML 文档里的节点值对应起来   objField Text = Request Form(x)  End If  Next   保存编辑过的 XML 文件   objDom Save strXMLFile   释放所有对对象的引用   Set objDom = Nothing  Set objRoot = Nothing  Set objField = Nothing   调用 LoadXMLFile 函数 把新编辑后的 XML 文件用 UpdatedUserData xsl 样式单显示到客户端   LoadXMLFile strXMLFile Server MapPath( UpdatedUserData xsl )  End Function     检查表单是否成功提交 如提交 更新 XML 文件 否则 转到编辑状态     If Request Form( btnSubmit ) = Then  LoadXMLFile Server MapPath( UserData xml ) Server MapPath( UserData xsl )  Else  UpdateXML Server MapPath( UserData xml )  End If  %>    当表单提交成功后 我们用UpdatedUserData xsl来显示我们刚刚编辑的数据     UpdatedUserData xsl如下:    <?xml version= encoding= gb ?>  <! edited with XMLSPY v rel U () by Dicky (Apple S Eden) >  <xsl:stylesheet xmlns:xsl= xsl >  <xsl:template match= / >  <>  <meta equiv= Content Type content= text/; charset=gb />  <body>  <h >Updated UserInfo </h >  <table border= cellpadding= >  <xsl:for each select= UserInfo/Field >  <tr>  <td>  <xsl:value of select= @ID />  </td>  <td>  <xsl:value of select= FieldValue />  </td>  </tr>  </xsl:for each>  </table>  <form>  <input type= button value= Go Back onclick= history go( ) />  </form>  </body>  </>  </xsl:template>  </xsl:stylesheet>    以上只是XML跨平台应用的一个简单的例子 结合具体的需求 我们可以编写功能更强大的程序来完成我们更负杂的工作 所有程序在Windows En+IIS +IE +MSXML Dll环境下调试通过 cha138/Article/program/net/201311/13728

相关参考

知识大全 华为手机上下载的百度文库怎么编辑里面的文档?

华为手机上下载的百度文库怎么编辑里面的文档?华为手机上百度文库编辑文档的办法:1、可以在手机上装一个WPS的手机版,这个软件从华为应用里就可以搜到。安装上之后就可以编辑百度文库了。华为手机上下载的百度

在WorD的编辑状态下,打开了文档“myl.doc”,把当前文档以“my2.doc”为名进行“另存为”操作,则__

在WorD的编辑状态下,打开了文档“myl.doc”,把当前文档以“my2.doc”为名进行“另存为”操作,则_____。A、当前文档是myl.docB、当前文档是my2.docC、当前文档是myl.

知识大全 从压缩文件直接打开的excel文档编辑后点保存,后来发现没有保存请问怎么才能找到修改后的文档

从压缩文件直接打开的excel文档编辑后点保存,后来发现没有保存请问怎么才能找到修改后的文档?WPS的哦·  以下文字资料是由(本站网www.cha138.com)小编为

知识大全 126邮箱中,word文档不能在线预览

126邮箱中,word文档不能在线预览你下载下来用word打开就行,应该是网络的问题,不行,过几天就可以打开了。将附件word文档添加到电子邮箱中并保存为草稿,为什么此后却打不开附件很多原因1、上传没

知识大全 ASP在线创建Word与Excel文档

ASP在线创建Word与Excel文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP具备

知识大全 用ASP在线创建Word与Excel文档

用ASP在线创建Word与Excel文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP具

在使用Word2010进行文字编辑时,下列叙述错误的是

在使用Word2010进行文字编辑时,下列叙述错误的是_____。A、允许同时打开多个文档B、可将正在编辑的文档另存为一个纯文本文件C、使用“打开”命令可以打开一个已存在的文档D、打印预览文档时,打印

在“记事本”或“写字板”窗口中,对当前编辑的文档进行存储,可以用__快捷键

在“记事本”或“写字板”窗口中,对当前编辑的文档进行存储,可以用_____快捷键。A、A1t+FB、A1t+SC、Ctr1+SD、Ctr1+F答案:C解析:Ctrl+S为保存快捷键。故选C。

知识大全 我的百度知道有很多财富值,但下载百度文库的文档时又说财富值不足,无法兑换下载券。怎么回事啊,在线等

我的百度知道有很多财富值,但下载百度文库的文档时又说财富值不足,无法兑换下载券。怎么回事啊,在线等知道和文库的财富值不通用百度知道财富值不能兑换百度文库的下载券么?不可以的,知道和文库是不一样的。不过

当word“编辑”菜单中的“剪切”和“复制”命令呈浅灰色而不能被选择时,则表示__

当word“编辑”菜单中的“剪切”和“复制”命令呈浅灰色而不能被选择时,则表示_____。A、选定的内容是页眉或页脚B、选定的文档内容太长,剪贴板放不下C、剪贴板里已经有信息了D、在文档中没有选定任何