2010-09-09 68 views
1

我在我的xml文檔中將兩個變量countryVar和langVar插入節點。利用xslt中的變量

<link><![CDATA[/<% = countryVar %>/<% = langVar %>/products/index.aspx]]></link> 

我正在像這樣使用xslt中的鏈接節點。

<a href="{link}"><xsl:value-of select="linkName"/></a> 

鏈接的值打印出來就像它在xml文檔中一樣。有沒有辦法讓兩個vb.net變量countryVar和langVar處理和打印出那裏的價值?這些值存儲在緩存中並被拉入頁面。

感謝

+0

問得好(+1)。看到我的答案有兩種不同的解決方案 – 2010-09-09 22:43:29

回答

0

XSLT不知道的(VB.NET)計劃發起變革的變量什麼。

有兩種不同的方式來變量的值傳遞給轉型:

  1. 將它們作爲全局參數的改造。閱讀更多如何與一起做XslCompiledTransform.Transform() :::: here

  2. 修改源XML文檔(加載它之後,包含在某些節點中的變量的值

我推薦上述方法1.

UPDATE。:

很明顯,您正在使用上述方法2的變體,在這種情況下,將變量的值放在th中並不是一個好主意同一個字符串。

很多優於:

<link><![CDATA[/<% = countryVar %>/<% = langVar %>/products/index.aspx]]></link> 

(這將是簡單的事後用XSLT處理,方法是:

<link> 
    <country><% = countryVar %></country> 
    <slash>/</slash> 
    <lang><% = langVar %></lang> 
    <tail-link>/products/index.aspx</tail-link> 
    <linkName>Whatever link text</linkName> 
</link> 

然後是處理這個XSLT代碼將只是

<a href="{link}"><xsl:value-of select="linkName"/></a> 

(假定您有<xsl:strip-space elements="*"/>在樣式表的全局級別)。

和變量的值

link/country 

link/lang 
+0

@Dimitre:你的答案很重要。但我認爲變量值現在包含在輸入中。 OP可以解析'link'元素...... – 2010-09-10 00:58:25

+0

@Alejandro:將變量值放在字符串中是沒有意義的!所以,我給了他一個很好的建議。另外,在提供的XML文檔中沒有'linkName'元素。 – 2010-09-10 01:53:06

+0

@Alejandro:他說他沒有得到價值,但他得到了他向我們展示的** **。所以,這根本不是一個XSLT問題,而是一個ASP問題! – 2010-09-10 01:55:58