2013-06-20 42 views
0

我有一個XSL變量qwe持有這樣XSL每個不工作

<Column1> 
    <TT TXT1="Skriveartikler" /> 
    <TT TXT1="Kridt" /> 
    <TT TXT1="Tavlekridt" /> 
</Column1> 

的XML和我的for循環是這樣

  <xsl:for-each select="$qwe/Column1/TT"> 
      <textarea> 
       <xsl:value-of select="."/> 
      </textarea> 
     </xsl:for-each> 

但執行代碼裏面從來沒有發生loop.Means沒有打印texarea。 任何人都可以給出任何理由?

回答

2
<xsl:value-of select="."/> 

將爲您提供TT元素的字符串值,這是您的示例中的空字符串。如果你想顯示Skriveartikler等文字,那麼你需要

<xsl:value-of select="@TXT1" /> 

如果你沒有得到根本則<textarea>元素想必你的變量不包含你所期望的。 Column1 XML是否在問題中提供了從具有默認名稱空間聲明(xmlns="...")的較大文檔中選擇的片段?如果是這樣,您需要將名稱空間綁定到樣式表中的前綴,並在XPath中使用該前綴。

另一種可能性是,在XSLT 1.0,如果你申報喜歡

<xsl:variable name="qwe"> 
    <Column1> 
    <TT TXT1="Skriveartikler" /> 
    <TT TXT1="Kridt" /> 
    <TT TXT1="Tavlekridt" /> 
    </Column1> 
</xsl:variable> 

一個變量,則變量將包含一個結果樹片段,而不是一個節點集,唯一的事情,你可以用做RTF將其複製到輸出樹 - 您無法使用XPath表達式導航到它。如果你想這樣做,你需要使用擴展功能將RTF轉換爲節點集,例如exslt:node-set()

+0

謝謝你的答案,但我的問題是,循環從來沒有執行。甚至空白textarea是不打印。 – Athul

+0

@AthulKSurendran我添加了另外幾個可能的解釋。 –

0

該變量不包含你告訴我們它包含的內容。我們不知道爲什麼沒有看到你如何設置變量。