我有一个由xsl创建的联系我们页面。该页面中的提交按钮重定向到也由xsl创建的感谢页面。现在我希望输出为Thank You <name i enter>
。它作为查询字符串在url中传递。现在我如何在页面中访问它?我可以在这里使用xsl中的request.getParameter(<parameter name>)
之类的等价物吗?
提前致谢。
答案 0 :(得分:0)
使用QueryString
类的HttpRequest
属性。
以下是一个示例(C#)如何使用此属性:
int loop1,loop2;
// Load NameValueCollection object.
NameValueCollection coll=Request.QueryString;
// Get names of all keys into a string array.
String[] arr1 = coll.AllKeys;
for (loop1 = 0; loop1 < arr1.Length; loop1++)
{
Response.Write("Key: " + Server.HtmlEncode(arr1[loop1]) + "<br>");
String[] arr2 = coll.GetValues(arr1[loop1]);
for (loop2 = 0; loop2 < arr2.Length; loop2++)
{
Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
}
}
在您的情况下,当您找到想要的名称 - 值对时,获取值并将其作为参数传递给XSLT转换。在.NET中,一种方法是使用XsltArgumentList.AddParam()
方法
同样,这是一个完整的C#示例:
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create the XslCompiledTransform and load the stylesheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("order.xsl");
// Create the XsltArgumentList.
XsltArgumentList xslArg = new XsltArgumentList();
// Create a parameter which represents the current date and time.
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
// Transform the file.
using (XmlWriter w = XmlWriter.Create("output.xml"))
{
xslt.Transform("order.xml", xslArg, w);
}
}
}
XSLT转换必须包含名为xsl:param
的全局date
:
<xsl:param name="date"/>
以上代码将此全局参数设置为所需值。然后在XSLT代码中,只需访问参数$date
。