Разделение строки с помощью точки с запятой в XML 1.0 - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь заново создать XSLT, который я не написал, чтобы распределить рабочие роли в разных строках с собственными тегами.

Код в настоящее время показывает всю строку с точками с запятой

<xsl:value-of select="Properties/Property[Name='accountability']/Value" />

в настоящее время производит

<Consulted>viewpoint manager;design management lead;bim specialist</Consulted>

Я попытался отредактировать код, добавив рекурсивный тест, который я взял из другого поста, но он не дает вывода. Я пытался использовать прямую точку с запятой, ASCII и шестнадцатеричные символы, но безуспешно

Вот код XSLT-1.0:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" />
    <xsl:template match="/">
        <RolesData>
            <Activities>
                <xsl:apply-templates select="XmlCatalogue/File/Map/MapPages/MapPage/Activities/Activity">
                    <xsl:sort select="Level" order="ascending" />
                    <xsl:sort select="Name" order="ascending" />

                </xsl:apply-templates>
            </Activities>
        </RolesData>
    </xsl:template>
    <xsl:template name="tokenize">
        <xsl:param name="text"/>
        <xsl:param name="sep" select="'&#59;'"/>
        <xsl:choose>
            <xsl:when test="contains($text, $sep)">
                <!-- recursive call -->
                <xsl:call-template name="tokenize">
                    <xsl:with-param name="text" select="substring-after($text, $sep)" />
                </xsl:call-template>
            </xsl:when>
        </xsl:choose>
    </xsl:template>
    <xsl:template match="Activity">
        <Activity>
            <Consulted>
                <xsl:call-template name="tokenize">
                    <xsl:with-param name="text" select="Properties/PropertyName='consulted']/Value"/>
                </xsl:call-template>

            </Consulted>
        </Activity>
    </xsl:template>
</xsl:stylesheet>
...