2017-04-11 30 views
0

更新XSLT:我不能把別名標籤的src屬性

<img> 
    <xsl:element name="xsl:attribute"> 
    <xsl:attribute name="name"> 
     src 
    </xsl:attribute> 
    test.aspx?id=<xslout:value-of select="blah" /> 
    </xsl:element> 
</img> 

前面生成我需要什麼,

<img> 
    <xsl:attribute name="src"> 
    test.aspx?id=<xsl:value-of select="blah" /> 
    </xsl:attribute> 
</img> 

但不知道怎麼了嗎?任何見解?更簡潔?

原貼

幫助XSL轉換到XSL片段:

<img> 
    <xsl:attribute name="src"> 
    <xsl:text>test.aspx?id=</xsl:text><xslout:value-of select="blah" /> 
    </xsl:attribute> 
</img> 

我想這個轉換爲:

<img src="test.aspx?id=<xsl:value-of select="blah"/> /> 

但是我沒有得到部分

我在想這個錯嗎?因爲當我移動,準確的xslout本身之外img標籤它產生正確的xsl:value-of

+0

這將是xsl到xsl,所以我需要{blah}字面上 Rod

+1

XML不不允許標籤嵌套在另一個標籤中。 –

+0

所以更新的代碼是如此簡潔,然後呢? – Rod

回答

1

您要創建的輸出不是有效的XML(屬性不能包含<"字符)。

要產生什麼是

<img src="test.aspx?id={blah}" /> 

你可能喜歡的東西做到這一點:

<xsl:template match="xsl:attribute[@name='src']"> 
    <xsl:attribute name="src"> 
    <xsl:apply-templates mode="avt"/> 
    </xsl:attribute> 
</xsl:template> 

<xsl:template match="xsl:text" mode="avt"> 
    <xsl:value-of select="."/> 
</xsl:template> 

<xsl:template match="xsl:value-of" mode="avt"> 
    <xsl:text>{</xsl:text> 
    <xsl:value-of select="@select"/> 
    <xsl:text>}</xsl:text> 
</xsl:template> 

雖然這很難說沒有看到你想要達到的目標更完整的說明(和你的示例代碼段甚至不是格式良好的XML)

+0

我想要生成的是字面上看起來像這樣的另一個樣式表: />如果可能的話。 – Rod

+0

如果你生成它,它不會是一個樣式表,它會是垃圾。 –

+0

我更新了我的OP,並想知道如果您的工作代碼可以更簡潔一些嗎? – Rod

相關問題