2013-06-19 28 views
-1

雙引號下產生的XSLT編譯錯誤:如何界定在XSLT

<asp:hiddenfield runat="server" value="<xsl:value-of select="string[position()=2]"/>" id="<xsl:value-of select="$ActionID"/>"></hiddenfield> 

我怎樣才能正確地得到這種說法與我們合作?我嘗試了以下方法,但都沒有成功: 。 。 。 ' 「 。 。 。 」 ID = 「」/>

<asp:hiddenfield runat="server" value="<xsl:value-of select=&quot;string[position()=2]&quot;/>" id="<xsl:value-of select=&quot;$ActionID&quot;/>"></hiddenfield> 

<asp:hiddenfield runat="server" value="<xsl:value-of select='string[position()=2]'/>" id="<xsl:value-of select='$ActionID'/>"></hiddenfield> 

<asp:hiddenfield runat="server" value=&quot;<xsl:value-of select="string[position()=2]"/>&quot; id=&quot;<xsl:value-of select="$ActionID"/>&quot;></hiddenfield> 

其他不成功的嘗試使用concat,&#34,&#39,等等。我哪裏錯了?非常感謝所有的迴應。

回答

2

你需要在這裏使用屬性值模板!當你在屬性使用花括號

嘗試此代碼,而不是

<asp:hiddenfield runat="server" value="{string[position()=2]}" id="{$ActionID}"></asp:hiddenfield> 

,這表明它是待計算的表達式,而不是輸出字面。

這是另一種方式。

<asp:hiddenfield runat="server"> 
    <xsl:attribute name="value"> 
     <xsl:value-of select="string[position()=2]"/> 
    </xsl:attribute> 
    <xsl:attribute name="id"> 
     <xsl:value-of select="$ActionID"/> 
    </xsl:attribute> 

但是,正如你所看到的,這是更詳細的。如果您需要動態屬性名稱,或者只想在特定條件下輸出屬性,則只需要使用xsl:屬性

+0

非常感謝你爲我澄清。我們遇到了一些網絡問題,所以我無法測試您的建議,但對我來說聽起來很合適。一百萬祝福給你。謝謝。 – user2501397

+0

我們終於獲得了一切,並且已經嘗試了您列出的兩種解決方案,但仍然收到XSLT編譯錯誤。當我只評論這一部分時,一切運行良好。在這種情況下,必須多一點... – user2501397

+0

你確定你改變了所有出現的屬性嗎?另外,也許你可以修改你的問題來顯示你正在得到的確切的錯誤信息?謝謝! –