1
我有一個由xsl創建的聯繫人頁面。該頁面中的提交按鈕將重定向到由xsl創建的感謝頁面。現在我想要輸出爲Thank You <name i enter>
。作爲查詢字符串在URL中傳遞。現在我怎樣才能在頁面中訪問它? xsl中是否有像request.getParameter(<parameter name>)
這樣的等價物,我可以在這裏使用?訪問xsl中的查詢字符串參數值
在此先感謝。
我有一個由xsl創建的聯繫人頁面。該頁面中的提交按鈕將重定向到由xsl創建的感謝頁面。現在我想要輸出爲Thank You <name i enter>
。作爲查詢字符串在URL中傳遞。現在我怎樣才能在頁面中訪問它? xsl中是否有像request.getParameter(<parameter name>)
這樣的等價物,我可以在這裏使用?訪問xsl中的查詢字符串參數值
在此先感謝。
使用HttpRequest
類的QueryString
屬性。
下面是一個例子(C#)該屬性可以如何使用:
INT LOOP1,循環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
。
您是使用代碼通過XSLT生成頁面,還是僅僅通過'<?xml-stylesheet?>處理指令提供XML文件?如果它是前者,也許有辦法事先獲取該值並將其作爲參數傳遞給XSLT。你能告訴我們一些相關的代碼嗎? – JLRishe