RE: [xsl] generating mailto

Subject: RE: [xsl] generating mailto
From: "Macaulay,Malcolm (US)" <Malcolm.Macaulay2@xxxxxxxxx>
Date: Fri, 11 Oct 2002 13:16:39 -0500
Hi Steve,

Here's an example:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<contacts>
	<contact>
		<email>xxx@xxxxxxxxx</email>
	</contact>
	<contact>
		<email>xxx@xxxxxxxxx</email>
	</contact>
	<contact>
		<email>xxx@xxxxxxxxx</email>
	</contact>
</contacts>

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
	<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="/">
		<html>
			<body>
				<xsl:apply-templates/>
			</body>
		</html>
	</xsl:template>
	<xsl:template match="contacts/contact/email">
		<a>
			<xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
			<xsl:value-of select="."/>
		</a>
		<br/>
	</xsl:template>
</xsl:stylesheet>

Hope that helps.

cheers

Malcolm

-----Original Message-----
From: Steve Salkin [mailto:steve@xxxxxxxxxx]
Sent: Friday, October 11, 2002 12:43 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] generating mailto


Hi-

I'm just getting my feet wet in XSL and it's pretty interesting. I think
I am missing something though, because I find myself needing xsl:text
more than I think I really ought to. For example, if I have XML
<contact>
  <email>xxx@xxxxxxxxx</email>
</contact>

and I want to generate a mailto URI like this:
<a href="xxx@xxxxxxxxx>xxx@xxxxxxxxx</a>

the only thing I can get to work well is something like

<td class="contact">
  <xsl:text disable-output-escaping="yes">
    &lt;a href= &quot;mailto:
  </xsl:text>
  <xsl:value-of select="contact/email"/>
  <xsl:text disable-output-escaping="yes">
     &quot;>
  </xsl:text>
  <xsl:value-of select="contact/email"/>
  <xsl:text disable-output-escaping="yes">
    &lt;/a>
  </xsl:text>
</td>

because the need for quotes after the "href=" confuses everything  (Then
I have to hide the '<' because it gets upset when it sees <a href= with
no quotes following). I'm sure that there's a more elegant solution than
this relatively ugly one. I did try using an <xsl:variable> but I just
get $email in the output. Any takers?

S-



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread