如何在XSLT中选择和分隔逗号值

时间:2016-01-13 13:14:48

标签: xslt

我的XML:

<geoCode>36.113,-114.925</geoCode>

我需要一个XSLT,它将上面的XML转换为以下XML格式:

<geoCode>
    <lati>36.113</lati>
    <longi>-114.925</longi>
</geoCode>

2 个答案:

答案 0 :(得分:2)

您可以在模板中使用以下代码:

<xsl:template match="...">
    <xsl:variable name="geo-code-split" select="tokenize(geoCode, ',')" />

    <geoCode>
        <lati><xsl:value-of select="$geo-code-split[1]" /></lati>
        <longi><xsl:value-of select="$geo-code-split[2]" /></longi>
    </geoCode>
</xsl:template>

P.S。:此解决方案使用XSLT 2.0。对于XSLT 1.0,您可以使用string-before()string-after()函数。

答案 1 :(得分:1)

<geoCode>
    <lati>
        <xsl:value-of select="substring-before(geoCode,',')"/>
    </lati>
    <longi>
        <xsl:value-of select="substring-after(geoCode,',')"/>
    </longi>
</geoCode>

这是使用substring-before和substring-after。