更新
<img>
<xsl:element name="xsl:attribute">
<xsl:attribute name="name">
src
</xsl:attribute>
test.aspx?id=<xslout:value-of select="blah" />
</xsl:element>
</img>
前面生成我需要的,
<img>
<xsl:attribute name="src">
test.aspx?id=<xsl:value-of select="blah" />
</xsl:attribute>
</img>
但还不确定如何?有什么见解吗?更简洁?
原始帖子
帮助将 XSL 转换为 XSL 代码段:
<img>
<xsl:attribute name="src">
<xsl:text>test.aspx?id=</xsl:text><xslout:value-of select="blah" />
</xsl:attribute>
</img>
我正在尝试将其转换为:
<img src="test.aspx?id=<xsl:value-of select="blah"/> />
但是我没有得到<xsl:value-of select="blah" />
部分
我有没有想错?因为当我将确切的xslout
单独移动到img
标签之外时,它会生成正确的xsl:value-of
您尝试创建的输出不是有效的 XML(属性不能包含<
和"
字符(。
您要生成的是
<img src="test.aspx?id={blah}" />
你可以这样做:
<xsl:template match="xsl:attribute[@name='src']">
<xsl:attribute name="src">
<xsl:apply-templates mode="avt"/>
</xsl:attribute>
</xsl:template>
<xsl:template match="xsl:text" mode="avt">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="xsl:value-of" mode="avt">
<xsl:text>{</xsl:text>
<xsl:value-of select="@select"/>
<xsl:text>}</xsl:text>
</xsl:template>
尽管如果不看到您想要实现的目标的更完整描述,就很难判断(并且您的示例代码段甚至不是格式良好的 XML(