您可以将元素名称存储为稍后要调用的变量吗?
例如:
<xsl:variable name="element">
<xsl:choose>
<xsl:when test="Argument1">strong</xsl:when>
<xsl:when test="Argument2">em</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:element name="{$element}">
<a href="{$url}">
<xsl:value-of select="title"/>
</a>
</xsl:element>
因此,基于预定义的参数,要包围锚标记的元素必须是<strong>
或<em>
。
或者我是否接近这个错误?
长篇大论并在每个参数的choose when语句中复制锚标记似乎不起作用。
谢谢, 凯文
答案 0 :(得分:1)
我认为你发布的样本应该有效。使用XSLT 2.0,您甚至可以<xsl:element name="{if (Argument1) then 'strong' else if (Argument2) then 'em' else ()}">
。
答案 1 :(得分:1)
您的方法完全有效。
或者,可以使用两个模板:
<xsl:template match="someElement[Argument1]">
<strong>
<a href="{$url}">
<xsl:value-of select="title"/>
</a>
</strong>
</xsl:template>
<xsl:template match="someElement[Argument2]">
<em>
<a href="{$url}">
<xsl:value-of select="title"/>
</a>
</em>
</xsl:template>
可以说第二种方法更具说明性,灵活性和可维护性。