1

我有一个由 xsl 创建的联系我们页面。该页面中的提交按钮重定向到同样由 xsl 创建的感谢页面。现在我想将输出作为Thank You <name i enter>. 以查询字符串的形式在 url 中传递。现在我如何在页面中访问它?request.getParameter(<parameter name>)我可以在这里使用类似 xsl 的任何等价物吗?

提前致谢。

4

1 回答 1

0

使用类的QueryString属性HttpRequest

以下是如何使用此属性的示例 (C#):

int循环1,循环2;

// 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.

于 2013-01-21T12:52:52.727 回答