Разделить строку URL в XSLT - PullRequest
0 голосов
/ 15 октября 2018

Как разделить строку на основе символа / разделителя в заданном URL-адресе.

Для заданного URL-адреса: www.example.com / content / index.html

Желаемый вывод, например: Индекс

Код:

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

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете использовать 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>
...