trim.common.uri.paths — Trim common leading path components from a relative URI
This function trims common leading path components from a relative URI.
<xsl:template name="trim.common.uri.paths"> <xsl:param name="uriA" select="''"></xsl:param> <xsl:param name="uriB" select="''"></xsl:param> <xsl:param name="return" select="'A'"></xsl:param> <xsl:choose> <xsl:when test="contains($uriA, '/') and contains($uriB, '/') and substring-before($uriA, '/') = substring-before($uriB, '/')"> <xsl:call-template name="trim.common.uri.paths"> <xsl:with-param name="uriA" select="substring-after($uriA, '/')"></xsl:with-param> <xsl:with-param name="uriB" select="substring-after($uriB, '/')"></xsl:with-param> <xsl:with-param name="return" select="$return"></xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$return = 'A'"> <xsl:value-of select="$uriA"></xsl:value-of> </xsl:when> <xsl:otherwise> <xsl:value-of select="$uriB"></xsl:value-of> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template>