XSLT Как использовать substring-after и concate для одной строки несколько раз - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть небольшая проблема, и я просто не могу понять это. У меня есть строка RTF в XML и я хочу вырезать изображения там. Это работает до сих пор. Но теперь у меня проблема в том, что строка проверяется и укорачивается только один раз. Но может быть между 0 и бесконечными изображениями. Я не понимаю, как я могу заменить их все, т.е. выполнить concat несколько раз.

Большое спасибо за вашу помощь

XML Файл: https://pastebin.com/6iVuFasn

Мой код XSL:

<xsl:variable name="storyFormattedText" select="//STORY_TEXT_RTF"/>
<xsl:variable name="textWithoutImages">
        <xsl:value-of select="$storyFormattedText"/>
        <xsl:if test="contains($storyFormattedText,'{\result{\pict{\*\picprop}')">
        <xsl:value-of select="concat(substring-before($storyFormattedText,'{\result{\pict{\*\picprop}'),substring-after($storyFormattedText,'}}}'))"/>
        </xsl:if>
    </xsl:variable>

<xsl:call-template name="create_field">
                        <xsl:with-param name="field_id">15</xsl:with-param>
                        <xsl:with-param name="field_type">1</xsl:with-param>
                        <xsl:with-param name="field_name">Formatted Text ohne Bilder</xsl:with-param>
                        <xsl:with-param name="is_empty">no</xsl:with-param>
                        <xsl:with-param name="value">
                            <xsl:value-of select="concat(substring-before($storyFormattedText,'{\result{\pict{\*\picprop}'),substring-after($storyFormattedText,'}}}'))"/>
                        </xsl:with-param>
                    </xsl:call-template>
...