這聽起來很簡單,但沒有我的「易」語法的工作:如何使用xsl:參數值的方式在xsl:屬性名稱=「寬度」
<xsl:param name="length"/>
<xsl:attribute name="width">$length</xsl:attribute>
not
<xsl:attribute name="width"><xsl:value-of-select="$length"></xsl:attribute>
有什麼建議?
感謝
這聽起來很簡單,但沒有我的「易」語法的工作:如何使用xsl:參數值的方式在xsl:屬性名稱=「寬度」
<xsl:param name="length"/>
<xsl:attribute name="width">$length</xsl:attribute>
not
<xsl:attribute name="width"><xsl:value-of-select="$length"></xsl:attribute>
有什麼建議?
感謝
<xsl:attribute name="width">$length</xsl:attribute>
這將創建價值字符串$length
的屬性。但是您想要名爲$length
的xsl:param的值。
<xsl:attribute name="width"><xsl:value-of-select="$length"></xsl:attribute>
這裏<xsl:value-of>
元件沒有關閉 - 這使得不良好的XML的XSLT代碼。
解:下面的
使用一個:
<xsl:attribute name="width"><xsl:value-of select="$length"/></xsl:attribute>
或
<someElement width="{$length}"/>
出於可讀性和緊湊性傾向於使用2以上,只要有可能。
我假設你的意思是xsl:value-of,而不是xsl:value-of-select? :) – markusk 2010-04-19 06:54:27
@markusk:感謝您注意到這一點。糾正。 – 2010-04-19 12:52:23
你可能甚至不需要xsl:attribute
在這裏;最簡單的方法是這樣的:
<someElement width="{$length}" ... >...</someElement>
您的第一個選擇失敗,因爲變量未在文本節點中展開。您的第二個選擇失敗,因爲您嘗試撥打<xsl:value-of-select="...">
,而正確的語法是<xsl:value-of select="..."/>
,如標準中的Generating Text with xsl:value-of部分所述。您可以通過使用
<xsl:attribute name="width"><xsl:value-of select="$length"/></xsl:attribute>
解決您的代碼或者,正如其他人指出的那樣,你可以使用attribute value templates:
<someElement width="{$length}" ... >...</someElement>
您可能需要格式化您的示例代碼,使其更易於閱讀。點擊「編輯」鏈接,突出顯示您的代碼示例,然後單擊代碼格式按鈕。 – Filburt 2010-04-18 21:45:39
好問題,但你需要格式化你的代碼(我這次爲你做了)。 +1。看到我的答案,它提供了兩種解決方案,並推薦更好的解決方案。 :) – 2010-04-18 21:58:46