通常情況下,要在運行時爲變換提供參數,並編寫變換以使其行爲由參數控制。
通常當我這樣做時,我只傳入一個參數 - 一個XML文檔 - 並讓模板查詢它以確定它們應該做什麼。所以你會看到類似的東西:
<xsl:template match="*">
<xsl:variable name="cfg" select="$config/*[name() = current()]"/>
<xsl:choose>
<xsl:when test="cfg/elementType = 'option'">
<xsl:apply-templates select="." mode="option">
<xsl:when test="cfg/elementType = 'optgroup'">
<xsl:apply-templates select="." mode="optgroup">
<xsl:when test="cfg/elementType = 'a'">
<xsl:apply-templates select="." mode="a">
等等。
這是非常簡單的使用XML/XSLT動態地養活一個WebBrowser控件:
using (XmlWriter xw = XmlWriter.Create(new StringWriter(output)))
{
StringBuilder output = new StringBuilder();
XsltArgumentList args = new XsltArgumentList();
args.AddParam("config", myConfigXml);
myXslt.Transform(myXml, args, xw);
xw.Flush();
myWebBrowser.DocumentText = output.ToString();
}
如果用戶是更新用戶界面是在web瀏覽器本身(即HTML頁面中包含HTML UI控件) ,您應該使用動態HTML技術,就像使用普通瀏覽器顯示頁面一樣。這是一個完全不同的香蕉袋。