2013-06-20 134 views
0

我有一個存儲過程作爲xml.I使用XSLT的代碼返回names.and我想的名字到XSLT variable.I試圖返回項目名稱我的代碼就像無法獲取價值的XSLT變量

<xsl:variable name="Item" 
    select="shop:ExecStoredProcedure(
      'kt_Item', 
      concat('@Dcat:',$p//defaultcategory) 
     )" /> 
<xsl:variable name="txt1" 
       select="$Item//TT[@TXT1]"/> 
    <textarea> 
    <xsl:value-of select="$txt1"/> 
    </textarea> 

輸出XML就像

<root> 
<item> 
<Column1> 
<TT TXT1="Item3" /> 
<TT TXT1="Item2" /> 
<TT TXT1="Item1" /> 
</Column1> 
</item> 
</root> 

,但在我的代碼,我不能讓names.Waht是什麼問題?誰知道?

+0

目前還不清楚是什麼你正在嘗試做的;你多次提到「名稱」,但是你在複製到輸出的XML中沒有任何內容被稱爲「名稱」。你的意思是不是寫的TT元素的輸出,你想寫的TXT1屬性的輸出值? –

回答

1

的問題似乎是,你ExecStoredProcedure返回值是從視圖(即使刺痛包含XML)的XSLT點的字符串。

XSLT-1.0不能重新解釋一個字符串作爲XML。根據您的環境(XLST處理器),你可以使用擴展node-set()做到這一點。

如果你可以使用這個擴展,你可以嘗試這樣的:

<xsl:variable name="txt1" select="exsl:node-set($Item)//TT[@TXT1]"> 
+0

我試過但我得到的結果是 Arun

+0

哼,好像我不明白你的預期輸出是,但xpath似乎工作,因爲TT [@ TXT1]'查找屬性爲@TXT的所有TT。 –

+0

我需要的輸出像...項目1項目2項目3 ..Each值分別.. – Arun