在XSLT中分割网址字符串

时间:2018-10-15 11:30:53

标签: string xslt split xslt-2.0

我们如何根据给定网址中的某些字符/分隔符来分割字符串。

给出如下网址: www.example.com/content/index.html

所需的输出,例如:索引

代码:

<span transId="gadget_{position()}"><xsl:value-of select="www.example.com/content/index.html" /> </span>

1 个答案:

答案 0 :(得分:1)

您可以在构建函数中使用tokenize和substring-before来实现所需的输出:

示例输入:

<?xml version="1.0" encoding="UTF-8"?>
<body>
    <exp>www.example.com/content/index.html</exp>
</body>

示例XSLT:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" encoding="UTF-8" indent="yes" />


    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="exp">
        <span transId="gadget_{position()}">
            <xsl:value-of select="substring-before(tokenize(., '/')[last()],'.')" />
        </span>
    </xsl:template>

</xsl:transform>

示例输出:

<?xml version="1.0" encoding="UTF-8"?>
<body>
    <span transId="gadget_2">index</span>
</body>