如何在xsl模板中获取服务器端变量值?

时间:2009-11-17 13:33:46

标签: asp.net xslt

我希望在aspx页面中使用xsl模板中资源的本地化字符串,如下所示: <%=GetLocalizedString("grid_numberof_claim")%>。我正在尝试使用

<xsl:text disable-output-escaping="yes">
    <![CDATA[<%=GetLocalizedString("grid_numberof_claim")%>]]>
</xsl:text>

但没用。

实际上我可以在XML节点内传递本地化的字符串,例如“本地化”。但我正在寻找以aspx风格获得其价值的方法。

1 个答案:

答案 0 :(得分:2)

无法使用ASPX样式。

您可以使用XsltArgumentList将参数发送到XSLT模板,如下所述:HOW TO: Execute Parameterized XSL Transformations in .NET Applications

编辑:是的,您也可以在客户端传递参数。

xmldoc = ... // your xml document

var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0");
var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");

xslDoc.async = false;
xslDoc.load("YourTemplate.xsl");
xslt.stylesheet = xslDoc;

xslProc = xslt.createProcessor();
xslProc.input = xmldoc;
xslProc.addParameter("param1", 123);
xslProc.addParameter("param2", "abc");
xslProc.transform();

但客户端引出了另一种解决方案:您可以将您的XSLT文件重命名到ASPX并使用<%= %>语法

相关问题