ThomasM: XSLT 1.0 substring-after

Beitrag lesen

Hallo Julian,

Wie gehe ich nur vor, wenn der Wert unter "OrderResponseReference" entweder "1234/5678" oder "1234/5678/90123" sein kann. -> Sprich es kann sein, dass das '/' manchmal 1x und manchmal 2. vorkommt.

Ok, dann direkt mit xsl:call-template.

<!-- Einstieg mit dem Wert bei string: -->
<xsl:call-template name="last-substring-after">
  <xsl:with-param name="search" select="'/'"/>
  <xsl:with-param name="string" select="."/>
</xsl:call-template>

<!-- das aufzurufende Template: -->
<xsl:template name="last-substring-after">
  <xsl:param name="search"/>
  <xsl:param name="string"/>
  <xsl:variable name="result" select="substring-after($string, $search)"/>
  <xsl:choose>
    <xsl:when test="contains($result, $search)">
      <xsl:call-template name="last-substring-after">
        <xsl:with-param name="search" select="$search"/>
        <xsl:with-param name="string" select="$result"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$result"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

Grüße,
Thomas