[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Converting embedded URLs int hot links via XSL


Subject: RE: [xsl] Converting embedded URLs int hot links via XSL
From: David.Pawson@xxxxxxxxxxx
Date: Mon, 19 Apr 2004 11:55:58 +0100

    I don't think that's really the regexp you want to use, 
    apart frm the fact that it only allows 0-9 and a-z (not 
    even A-Z). It is only matching up to the first optional / 
    so basically just the host name part of the URL plyus 
    optional port specifier.

(That implies that DC actually understood that line noise :-) I'm impressed
David)

    you don't want to use "tokenize() for this you 
    want to use xsl:analyze-string which should give you a 
    handle on the bits of the data matching and not-matching 
    your regexp.

That's it. Thanks David.
    
    I'd use a fairly permissive regexp something like 
    [a-z]+://[^ 
()"']+ ie everything from foo:// to the 
    next space or bracket or quote character.

It works within those limits,

 <xsl:analyze-string select="." 
   regex="http://[^ &#10;( )&#x22;&#x27;]+">

   <xsl:non-matching-substring><xsl:text/>
   <other><xsl:value-of select="."/></other><xsl:text>
</xsl:text>
   </xsl:non-matching-substring>

   <xsl:matching-substring>
     <span><xsl:value-of select="."/></span>
   </xsl:matching-substring>
 </xsl:analyze-string>

Doing just what was requested,
even escaping the quotes, single and double,
to produce

<other>  Test url string:  '</other>
<span>http://www.yahoo.com/</span><other>'  and one more url "</other>
<span>http://www.yahoo.com/</span><other>"</other>


Thanks David. 
  I guessed I'd missed something :-)

regards DaveP

- 
DISCLAIMER: 

NOTICE: The information contained in this email and any attachments is 
confidential and may be privileged. If you are not the intended 
recipient you should not use, disclose, distribute or copy any of the 
content of it or of any attachment; you are requested to notify the 
sender immediately of your receipt of the email and then to delete it 
and any attachments from your system. 

RNIB endeavours to ensure that emails and any attachments generated by 
its staff are free from viruses or other contaminants. However, it 
cannot accept any responsibility for any  such which are transmitted.
We therefore recommend you scan all attachments. 

Please note that the statements and views expressed in this email and 
any attachments are those of the author and do not necessarily represent 
those of RNIB. 

RNIB Registered Charity Number: 226227 

Website: http://www.rnib.org.uk 


Current Thread