我有以下XSLT代码:
<xsl:template match="data[@key='picture']">
<xsl:value-of select="substring-after(picture, '.') "/>
<xsl:value-of select="substring-before(picture, '.') "/>
</xsl:template>
以及:
<data key="picture" value="the-parlotones.jpg" />
我想要以下XML输出:
<photo format="jpg">pascal-pierce</photo>
我应该添加什么才能获得所需的输出?
答案 0 :(得分:0)
假设问题中输入的所需输出应为<photo format="jpg">the-parlotones</photo>
,而不是<photo format="jpg">pascal-pierce</photo>
,则应更改模板,如下所示:
<xsl:template match="data[@key='picture']">
<photo format="{substring-after(@value, '.')}">
<xsl:value-of select="substring-before(@value, '.') "/>
</photo>
</xsl:template>
在您的输入中<data key="picture" value="the-parlotones.jpg" />
the-parlotones.jpg
是属性value
的值,因此使用<xsl:value-of select="substring-after(picture, '.') "/>
将无效,因为picture
只是元素key
的值{ {1}}。