2012-09-04 92 views
0

所以我有一些樣式內容保存在節點@style,我想調用它來形成<span>標籤的樣式屬性。它也是不夠的,所以我想追加margin-left:700px作爲<span>標籤的樣式屬性的一部分。這是可行的嗎?嵌入XSL代碼<span>標籤

順便說一下,我不能編輯它,因爲它是由客戶端提供

<span style="<xsl:copy-of select="Root/Node/MyFile/MyStyle/@style" margin-left:700px"> 
    <xsl:copy-of select="Root/Node/MyFile/MyCaption/Caption"/> 
</span> 

者均基於XSL是調用數據庫,我想上面和Altova的抱怨,從<xsl...字符<在語法上是意外。

回答

3

你的報價很可能搞砸了的XSLT,試試這個:

<span> 
    <xsl:attribute name="style"> 
     <xsl:copy-of select="Root/Node/MyFile/MyStyle/@style" /> 
     <xsl:text> margin-left:700px</xsl:Text> 
    </xsl:attribute> 

    <xsl:copy-of select="Root/Node/MyFile/MyCaption/Caption"/> 
</span> 

我不能此刻雖然測試...

0

你不能像鳥巢,但你可以做同樣的事情:

假設你有一個名爲「style_var」一些CSS變量:

<xsl:variable name="style_var">color: blue;</xsl:variable> 

和一個HTML元素,跨度:

<span> 
    ... 
</span> 

我相當肯定,你可以這樣做:

<span> 
    <xsl:attribute name="style"> 
     <xsl:value-of select="$style_var" /> 
     <xsl:text>margin-left: 100px;</xsl:Text> 
    </xsl:attribute> 
</span> 

而且,您可能會換出您上面使用的節點選擇器的變量選擇器。

0

您可能希望瞭解在「屬性值模板」這個案例。這使您可以將代碼直接嵌入到屬性中。

<span style="{Root/Node/MyFile/MyStyle/@style}" margin-left:700px"> 
    <xsl:value-of select="Root/Node/MyFile/MyCaption/Caption"/> 
</span> 

大括號{和}在這裏表示屬性值模板(AVT),並表示括號內的代碼應該被執行來獲取值。

您需要確保您的xpath表達式「Root/Node/MyFile/MyStyle/@ style」確實會返回正確的值。