Mahus: String in einer Schleife "analysieren"

Beitrag lesen

Hallo,

dann löse es über einen rekursiven Aufruf. Verkürze mit substring immer um ein Zeichen von vorne und zwar solang, bis kein | mehr enthalten ist (contains). Das muss dann der letzte Teilstring sein.

Grüße
Siri

Das war auch meine Idee, aber ich bekomme dann ein Stack Overflow.
Hier mein Code, vielleicht ist da auch ein fehler.

<xsl:template name="user:breadCrumbDesignation">  
		<xsl:param name="string" select="()"/>  
		<xsl:variable name="var1_resultof_substring_after" as="xs:string" select="fn:substring-after($string, '¦')"/>  
		<xsl:call-template name="user:breadCrumbDesignation">  
			<xsl:with-param name="string" as="xs:string">  
				<xsl:choose>  
					<xsl:when test="($var1_resultof_substring_after = '')">  
						<xsl:sequence select="$string"/>  
					</xsl:when>  
					<xsl:otherwise>  
						<xsl:sequence select="$var1_resultof_substring_after"/>  
					</xsl:otherwise>  
				</xsl:choose>  
			</xsl:with-param>  
		</xsl:call-template>  
	</xsl:template>
										~~~xml

<xsl:variable name="var48_resultof_breadCrumbDesignation" as="xs:string?">
<xsl:call-template name="user:breadCrumbDesignation">
<xsl:with-param name="string" select="fn:substring($var47_resultof_substring_after, xs:double('0'), xs:double((fn:string-length($var47_resultof_substring_after) div xs:integer('2'))))" as="xs:string"/>
</xsl:call-template>
</xsl:variable>

  
  
  
												~~~xml
  
													<xsl:if test="fn:exists($var48_resultof_breadCrumbDesignation)">  
														<designation>  
															<xsl:sequence select="$var48_resultof_breadCrumbDesignation"/>  
														</designation>  
													</xsl:if>