帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:acc  asp  对象  


介绍

一旦我开始对 xml/xsl进行兴趣,我发现访问ASP对象是不可以能的, 请求 在XSL模板中。我尝试通过 XSLTProcessor.addObject 方法,它在 会话 但却无法让它 请求 我知道,我知道你总是可以在XSL模板里面定义所有的请求变量 xsl:param 然后从ASP代码初始化它们,但是假设你不知道你要找的是什么,或者者太多。 我觉得不是最好的方法。 我的第一个想法是将所有变量作为节点追加到XML数据文件中,但这可能会降低你的web应用程序。 然后我提出了这个小类,允许你在实际需要它时得到任何变量。

这个想法

技巧是,即使XSL不能访问ASP对象,ASP本身也可以。 所以我将创建一个带有函数的简单的VBScript类 请求 对象变量和设置/检索 会话 变量也可以以。一个你已经经有了想象,你可以以按照你想要的方式扩展它。

Class ASPObjects
 'returns Request object variables'QType here represents a collection ' (QueryString, Form or Server(ServerVariables))PublicFunction GetRequestVariable(Key, QType)
 SelectCase lcase(QType)
 Case"querystring" GetRequestVariable = CStr(Request.QueryString(Key).Item)
 Case"form" GetRequestVariable = CStr(Request.Form(Key).Item)
 Case"server" GetRequestVariable = CStr(Request.ServerVariables(Key).Item)
 CaseElse GetRequestVariable = CStr(Request(Key).Item)
 EndSelectEndFunction'returns Session object variablesPublicFunction GetSessionVariable(Key)
 GetSessionVariable = Session(Key)
 EndFunction'sets Session object variablePublicFunction SetSessionVariable(Key, Value)
 Session(Key) = Value
 SetSessionVariable = ""EndFunctionEndClass

如何使用

现在我将讨论如何在 xsl/xslt中使用上面的类。 创建后 XSLProcessor 在你的ASP脚本中,只需创建 ASPObjects 类并使用方法添加 添加对象 请记住在你的XSL模板中创建一个命名空间( 我正在使用 xasp 下) 。

'##### test.asp #####'Loading XML and XSL somewhere...set xslProc = xslt.CreateProcessor()set xasp = new ASPObjects 'creating our object'adding it to XSL templatecall xslProc.addObject(xasp, "urn:asp-objects")call xslProc.Transform()
TransformXML = xslProc.outputSet xasp = Nothing'and don't forget to free memory :)...

当我们将对象传递给XSL模板时,让我们看看它是如何使用的。 首先添加另一个命名空间( urn:asp-objects 给你 xsl:stylesheet 然后,你可以访问对象的函数,如下面的示例所示:

<!--<span class="code-comment">test.xslt--></span><xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:xasp="urn:asp-objects"><!--<span class="code-comment">namespace added above--></span><xsl:templatematch="/"><!--<span class="code-comment">display value of Request.QueryString("hello")--></span><xsl:value-ofselect="xasp:GetRequestVariable('hello','querystring')"/><!--<span class="code-comment">set value of Session("username")--></span><xsl:value-ofselect="xasp:SetSessionVariable('username','Me!')"/></xsl:template>. . .</xsl:stylesheet>

这就是事实我告诉过你不是那么难。 现在你可以扩展类,以便它能够使用 响应 对象也可以,也可以将 Cookies 与其他 请求 参数或者访问 服务器 对象方法和属性。



文章标签:asp  acc  对象  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语