Subject: Re: [xsl] Making Link in text From: Senthilukvelaan <skumaravelan@xxxxxxxxxxxxxx> Date: Fri, 12 Sep 2008 06:51:57 -0700 |
Thanks you very much for the idea. I have not used the "mode". Mode is really handy in this case. Thanks, Senthil On Fri, Sep 12, 2008 at 2:33 AM, Jonas Mellin <jonas.mellin@xxxxxx> wrote: > Senthilukvelaan wrote, On 2008-09-12 09:41: >> >> Have a difficulty in producing the expected output. >> Any pointer would help. >> Input >> >> <P>Please click <LINK>http://www.google.com</LINK> >> <LINK_TEXT> >> Google >> </LINK_TEXT> >> on the link below or copy and paste the address >> onto your web browser's address window. Once you're on the web page, | >> you will be instructed >> </P> >> >> xslt >> >> <xsl:stylesheet version="1.0" >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> >> <xsl:template match="/"> >> <html> >> <body> >> <xsl:template match="P"> >> <P> >> <xsl:call-template name="markup"> >> <xsl:with-param name="content" select="." /> >> <xsl:with-param name="link" select="//LINK" /> >> <xsl:with-param name="text" select="//LINK_TEXT" /> >> </xsl:call-template> >> </P> >> </xsl:template> >> </body> >> </html> >> </xsl:template> >> >> <xsl:template match="P" name="markup" > >> <xsl:param name="link" /> >> <xsl:param name="text" /> >> <a href="{$link}"> >> <xsl:value-of select="$text" /> >> </a> >> </xsl:template> >> >> </xsl:stylesheet> >> > > The following does the transformation: > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="/"> > <html> > <body> > <xsl:apply-templates/> > </body> > </html> > </xsl:template> > > <xsl:template match="*"> > <xsl:copy> > <xsl:apply-templates/> > </xsl:copy> > </xsl:template> > > <xsl:template match="LINK"> > <a><xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute> > <xsl:apply-templates select="following::LINK_TEXT[1]" mode="inLink"/> > </a> > </xsl:template> > > <xsl:template match="LINK_TEXT" mode="inLink"> > <xsl:value-of select="."/> > </xsl:template> > > <xsl:template match="LINK_TEXT"> > </xsl:template> > > </xsl:stylesheet> > > You seem to have a vague idea of how the XSLT processor works. Further, it > is better to make the LINK and LINK_TEXT subelements of a common element > such as LINKINFO element. For example, replace > > <LINK>http://www.google.com</LINK> > <LINK_TEXT> > Google > </LINK_TEXT> > > with > > <LINKINFO> > <LINK>http://www.google.com</LINK> > <LINK_TEXT> > Google > </LINK_TEXT> > </LINKINFO> > > Then, we can replace the ugly and not so robust templates for LINK and > LINK_TEXT (template 3, 4 and 5) with > > <xsl:template match="LINKINFO"> > <a><xsl:attribute name="href"><xsl:value-of select="LINK"/></xsl:attribute> > <xsl:value-of select="LINK_TEXT"/> > </a> > </xsl:template> > > Note that I would choose different names for LINKINFO and LINK. For example, > LINKINFO => LINK and LINK => REF > > /Jonas > > > >> >> Desired output. >> >> <html> >> <body> >> <P>Please click >> <a href="http://www.google.com"> >> Google >> </a> >> on the link below or copy and paste the address >> onto your web browser's address window. Once you're on the web page, | >> you will be instructed >> </P> >> </body> >> </html> >> >> Thanks, >> S >> >> > > > -- > Carpe Diem! > === > Jonas Mellin, Assistant Professor in Computer Science > School of Humanities and Informatics, Building E-2 > University of Skvvde, P.O. Box 408, SE-541 28 Skvvde, Sweden > Phone: +46 500 448321, Fax: +46 500 448399 > Email: jonas.mellin@xxxxxx, URL: http://www.his.se/melj
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Making Link in text, Jonas Mellin | Thread | Re: [xsl] Making Link in text, Jonas Mellin |
Re: [xsl] How to get page range wit, Wendell Piez | Date | Re: [xsl] How to get page range wit, Andrew Welch |
Month |