已更新
<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
答案 0 :(得分:1)
您尝试创建的输出不是有效的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),但很难说清楚