使用xslt 1.0反转句子

时间:2015-05-29 11:02:50

标签: xml xslt xslt-1.0

我有一个xml文件,如下所示

<?xml version="1.0"?>
<class>
    <Name> I am Good </Name>
</class>

请将其转换为xsl,提供输出&#34; Good am I&#34;

很快找回答.........

1 个答案:

答案 0 :(得分:0)

您可以调用命名的递归模板来标记文本并以相反的顺序输出标记。例如:

<xsl:template name="reverse-tokenize">
    <xsl:param name="text"/>
    <xsl:if test="contains($text, ' ')">
        <!-- recursive call -->
        <xsl:call-template name="reverse-tokenize">
            <xsl:with-param name="text" select="substring-after($text, ' ')"/>
        </xsl:call-template>
        <xsl:text> </xsl:text>
    </xsl:if>
    <xsl:value-of select="substring-before(concat($text, ' '), ' ')"/>
</xsl:template>

此示例假定空格(并且只有空格)被视为单词分隔符。

调用模板的示例:

<xsl:template match="Name">
    <xsl:call-template name="reverse-tokenize">
        <xsl:with-param name="text" select="."/>
    </xsl:call-template>
</xsl:template>

完整演示:http://xsltransform.net/pPqsHTV