Subject: Re: URL decomposition From: Jens Lautenbacher <jtl@xxxxxxxxxx> Date: 25 May 2000 12:56:04 +0200 |
MarkH@xxxxxxxx writes: > At last, a question for the list which seems to go beyond newbiness! > > Can you think of a way to decompose a URL? > > I want to take something like: http://www.agilic.com/purchase.htm and end up > with purchase.htm. I've managed to use some of the string manipulation > capabilities of XPath to do things like change the file suffix from ".htm" > to ".xsl", but with only "substring-after()" and nothing I can find to loop > over the slash characters I'm not sure how to do this in XSLT. > > For example, if there were something like <xsl:while> I could do something > like: > > <xsl:while test="contains($xslfile,'/')"> > <xsl:variable name="xslfile"><xsl:value-of > select="substring-after('/',$xslfile)"/></xsl:variable> > </xsl:while> You have recursion.... :-) This template get's a filename and gives back the directory part of it. Giving back the filename part is achieved along the same line You call it somehow like <xsl:call-template name="strip"> <xsl:with-param name="relfile">foo/bar/baz.xml</xsl:with-param> </xsl:call-template> <xsl:template name="strip"> <xsl:param name="reldir"/> <xsl:param name="relfile"/> <xsl:choose> <xsl:when test="contains($relfile, '/')"> <xsl:call-template name="strip"> <xsl:with-param name="relfile"> <xsl:value-of select="substring-after($relfile,'/')"/> </xsl:with-param> <xsl:with-param name="reldir"> <xsl:value-of select="concat($reldir, substring-before($relfile,'/'), '/')"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$reldir"/> </xsl:otherwise> </xsl:choose> </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
URL decomposition, MarkH | Thread | Re: URL decomposition - Some things, Dan Morrison |
RE: <xsl:while>, Kay Michael | Date | Pass variables from template to ano, Cheun N Chong |
Month |