这听起来很简单,但没有我的“易”语法的工作:如何使用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