xsl-list
[Top] [All Lists]

[xsl] XSL - parsing a delimited string (URL)

2010-12-22 12:24:43


I have an XML element that might might be empty or might contain:
 
;#http://www.blah.com/blah/blah2/blah.doc;#
 
or:
 
;#http://www.blah.com/blah/blah3/blah.doc;#http://www.blah.com/blah/blah4/blah.doc;#
 
How do I tokenize the string so that I can get only that first occurrence?  
That is, only the first URL (if any) between the delimiters ... ?
 
Also, if possible, I need the xsl function / template to spit out a 'default' 
URL if the source XML element is empty ...
 
Believe I'm using XSL 1.0.
I'm using Microsoft SharePoint Designer for SharePoint 2007.   The beginning of 
the <xsl ...> is the following:
 
<xsl:stylesheet xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ddw1="http://schemas.microsoft.com/sharepoint/soap/"; 
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" 
version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" 
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"; 
xmlns:asp="http://schemas.microsoft.com/ASPNET/20"; 
xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"; 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
xmlns:SharePoint="Microsoft.SharePoint.WebControls" 
xmlns:ddwrt2="urn:frontpage:internal">
 
 
I have the following, but it's not so great:
 
<xsl:template name="SplitAttachments"> 
 <xsl:param name="str"/> 
  <xsl:choose> 
   <xsl:when test="contains($str,';#')"> 
   <xsl:variable name="attachmentUrl" select="substring-before($str,';#')"/> 
   <xsl:if test="string-length($attachmentUrl) != 0"> 
    <a href="{$attachmentUrl}"></a> 
   </xsl:if> 
   <xsl:call-template name="SplitAttachments"> 
    <xsl:with-param name="str" select="substring-after($str,';#')" /> 
   </xsl:call-template> 
   </xsl:when> 
  <xsl:otherwise> </xsl:otherwise> 
 </xsl:choose> 
</xsl:template>
 
 
                                          
--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>