2013-10-08 19 views
1

我有一個XSL/XML解析器來生成html代碼。使用XML/XSL解析器定義CSS樣式

這個XML是這樣的。

<root> 
    <a> 
    <url> http://image.jpg </url> 
    <x> 100 </x> 
    <y> 200 </y> 
    ... 
    </a> 
</root> 

和XST應該是這樣的。在我想要的樣式中,使用xml節點的值定義背景網址。我該怎麼做?

<xsl:template match="root"> 
    <xsl:for-each select="a"> 
    <div class="crop_image" style="background:url("<xsl:value-of select="url"/>") -<xsl:value-of select="x"/>px -<xsl:value-of select="y"/>px">"</div> 
    </xsl:for-each> 
</xsl:template> 

感謝

回答

2

你在找什麼是「屬性值模板」,它允許你寫從XML值直接進入屬性

<xsl:template match="root"> 
    <xsl:for-each select="a"> 
    <div class="crop_image" style="background:url({url}) -{x}px -{y}px">"</div> 
    </xsl:for-each> 
</xsl:template> 

大括號指示表達式被評估,而不是字面輸出,因此{url}例如將在您的輸出中替換爲http://image.jpg