Thanks Russell!
I did get a solution by storing the xml data as you suggested - with a 'mailto:'
at the beginning - and forming the anchor tag within the html document.
The html document links to an XSLT on loading. I'm using the html as a 'central'
document which dynamically links to different XSLT's for sorting purposes
when a button or column header clicked. There's probably a better way to
do this, but it works.

Anyway -- here is the source code in case it's useful to someone else. I
only included the first and last name sorting XSL files.

XML (eedir.xml)
------------------------
<?xml version="1.0"?>
<employees>
<employee EID="1">
<Last>Ruth</Last>
<First>Aaron</First>
<Title>Field Representative</Title>
<Alias>aruth@nowhere.com</Alias>
</employee>
<employee EID="2">
<Last>Giovannetti</Last>
<First>Adilia</First>
<Title>A/P Clerk</Title>
<Alias>mailto:agiovannetti@nowhere.com</Alias>
</employee>
</employees>

========================================================
XSLT (sortLNameAZ.XSL)
------------------
<employees>
<xsl:for-each order-by="+ Last" select="employee" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<employee>
<xsl:attribute name="EID"><xsl:value-of select="@EID"/></xsl:attribute>
<Last><xsl:value-of select="Last"/></Last>
<First><xsl:value-of select="First"/></First>
<Title><xsl:value-of select="Title"/></Title>
<Alias><xsl:value-of select="Alias"/></Alias>
</employee>
</xsl:for-each>
</employees>
===================================
XSLT (sortFNameAZ.XSL)
------------
<employees>
<xsl:for-each order-by="+ First" select="employee" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<employee>
<xsl:attribute name="EID"><xsl:value-of select="@EID"/></xsl:attribute>
<Last><xsl:value-of select="Last"/></Last>
<First><xsl:value-of select="First"/></First>
<Title><xsl:value-of select="Title"/></Title>
<Alias><xsl:value-of select="Alias"/></Alias>
</employee>
</xsl:for-each>
</employees>


===============================================
Code lines to look for in htm
-----------------
//-- displays data using XSLT on loading
<BODY topmargin="1" leftmargin="1" onload="sort(sortLNameAZ.XMLDocument);"
onmousemove="window.status = 'Employee Directory'">

//-- formats line to include 'mailto' hyperlink
<TD style="font-family: ARIAL; font-size: 8pt"><a <SPAN DATAFLD="Alias"></SPAN><SPAN
DATAFLD="Last"></SPAN></a></TD>

===================================================
Complete HTML file (eedir.htm)
-------------------
<HTML>
<BODY topmargin="1" leftmargin="1" onload="sort(sortLNameAZ.XMLDocument);"
onmousemove="window.status = 'Employee Directory'">

<XML id=xmldso></XML>
<XML id=sortLNameAZ src="sortLNameAZ.xsl"></XML>
<XML id=sortFNameAZ src="sortFNameAZ.xsl"></XML>
<XML id=sortCo src="sortCo.xsl"></XML>
<XML id=GetLNameA src="GetLNameA.xsl"></XML>
<XML id=GetLNameB src="GetLNameB.xsl"></XML>
<XML id=GetLNameC src="GetLNameC.xsl"></XML>
<XML id=GetLNameD src="GetLNameD.xsl"></XML>
<XML id=GetLNameE src="GetLNameE.xsl"></XML>
<XML id=GetLNameF src="GetLNameF.xsl"></XML>
<XML id=GetLNameG src="GetLNameG.xsl"></XML>
<XML id=GetLNameH src="GetLNameH.xsl"></XML>
<XML id=GetLNameI src="GetLNameI.xsl"></XML>
<XML id=GetLNameJ src="GetLNameJ.xsl"></XML>
<XML id=GetLNameK src="GetLNameK.xsl"></XML>
<XML id=GetLNameL src="GetLNameL.xsl"></XML>
<XML id=GetLNameM src="GetLNameM.xsl"></XML>
<XML id=GetLNameN src="GetLNameN.xsl"></XML>
<XML id=GetLNameO src="GetLNameO.xsl"></XML>
<XML id=GetLNameP src="GetLNameP.xsl"></XML>
<XML id=GetLNameQ src="GetLNameQ.xsl"></XML>
<XML id=GetLNameR src="GetLNameR.xsl"></XML>
<XML id=GetLNameS src="GetLNameS.xsl"></XML>
<XML id=GetLNameT src="GetLNameT.xsl"></XML>
<XML id=GetLNameU src="GetLNameU.xsl"></XML>
<XML id=GetLNameV src="GetLNameV.xsl"></XML>
<XML id=GetLNameW src="GetLNameW.xsl"></XML>
<XML id=GetLNameX src="GetLNameX.xsl"></XML>
<XML id=GetLNameY src="GetLNameY.xsl"></XML>
<XML id=GetLNameZ src="GetLNameZ.xsl"></XML>

<SCRIPT>
xmldso.async = false;
xmldso.load("eedir.xml");
var xmldoc = xmldso.cloneNode(true);

function sort(xsldoc){
syncChanges();
xmldoc.documentElement.transformNodeToObject(xsldoc.documentElement,xmldso.XMLDocument);
}

function syncChanges(){
for (var i=0;i<xmldso.documentElement.childNodes.length;i++)
{
var currentNode = xmldso.documentElement.childNodes(i).cloneNode(true);
var query = "employee[EID = '" + currentNode.childNodes.item(0).text
+ "']";
var origNode = xmldoc.documentElement.selectSingleNode(query);

}
}
</SCRIPT>
<INPUT TYPE=BUTTON VALUE="A" onclick="sort(GetLNameA.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="B" onclick="sort(GetLNameB.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="C" onclick="sort(GetLNameC.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="D" onclick="sort(GetLNameD.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="E" onclick="sort(GetLNameE.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="F" onclick="sort(GetLNameF.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="G" onclick="sort(GetLNameG.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="H" onclick="sort(GetLNameH.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="I" onclick="sort(GetLNameI.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="J" onclick="sort(GetLNameJ.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="K" onclick="sort(GetLNameK.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="L" onclick="sort(GetLNameL.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="M" onclick="sort(GetLNameM.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="N" onclick="sort(GetLNameN.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="O" onclick="sort(GetLNameO.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="P" onclick="sort(GetLNameP.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="Q" onclick="sort(GetLNameQ.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="R" onclick="sort(GetLNameR.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="S" onclick="sort(GetLNameS.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="T" onclick="sort(GetLNameT.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="U" onclick="sort(GetLNameU.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="V" onclick="sort(GetLNameV.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="W" onclick="sort(GetLNameW.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="X" onclick="sort(GetLNameX.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="Y" onclick="sort(GetLNameY.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">
<INPUT TYPE=BUTTON VALUE="Z" onclick="sort(GetLNameZ.XMLDocument);"style="font-family:
Tahoma; font-size: 8pt">

<TABLE DATASRC='#xmldso' BORDER CELLPADDING=3>
<THEAD>
<TH style="font-family: ARIAL; font-size: 8pt; cursor:hand; color=navy;"><a
title="Sort" onclick="sort(sortLNameAZ.XMLDocument);" onmouseover="this.style.color='#0000FF'"
onmouseout="this.style.color='navy'"><u>Last</u></a></TH>
<TH style="font-family: ARIAL; font-size: 8pt; cursor:hand; color=navy;"><a
title="Sort" onclick="sort(sortFNameAZ.XMLDocument);" onmouseover="this.style.color='#0000FF'"
onmouseout="this.style.color='navy'"><u>First</u></a></TH>
<TH style="font-family: ARIAL; font-size: 8pt">Title</TH>
</THEAD>
<TR>
<TD style="font-family: ARIAL; font-size: 8pt"><a <SPAN DATAFLD="Alias"></SPAN><SPAN
DATAFLD="Last"></SPAN></a></TD>
<TD style="font-family: ARIAL; font-size: 8pt"><SPAN DATAFLD="First"></SPAN></TD>
<TD style="font-family: ARIAL; font-size: 8pt"><SPAN DATAFLD="Title"></span></TD>
</TR>
</TABLE>
</BODY>
</HTML>
===============================


"Russell Jones" <arj1@nospam.northstate.net> wrote:
>You'll either need to change the <Email> nodes in your XML document to look
>like this:
>
><Email><a href="mailto:jdoe@nowhere.com">John Doe</a></Email>
>
>OR
>
>you'll have to parse the value of the CDATA node in each <Email> element

and
>create the anchor tag in your JavaScript code or via XSLT,
>
>OR (my personal preference)
>You could store the XML data as follows:
><Email>
> <name>John Doe</name>
> <address>jdoe@nowhere.com</address>
></Email>
>
>This last way, you have independent access to the name and the address via
>the DOM or XSL, and you can still create the anchor tag in your JavaScript
>code or via XSLT.
>
>However, any of these methods should work.
>
>"S. Brower" <sbrower@walterind.com> wrote in message
>news:3db85884$1@tnews.web.devx.com...
>>
>> "S. Brower" <sbrower@walterind.com> wrote:
>> FYI I've also tried this
>> ![CDATA[<html><a href="mailto:jdoe@nowhere.com">joe</a></html>]]
>> with no success.
>>
>> >
>> >Please help!
>> >I would expect the following sample to result in a column titled Email

>where
>> >each entry from the XML file displays as clickable item to send an email.
>> > Instead what I get is the stuff in the CDATA tag - verbatim.
>> >
>> >How do I create the email addresses dynamically?
>> >
>> >Thanks in advance,
>> >SB
>> >
>> >=============XML FILE======================
>> ><?xml version="1.0"?>
>> ><employees>
>> ><employee EID="1">
>> ><Last>Doe</Last>
>> ><First>John</First>
>> ><Title>Field Representative</Title>
>> ><Email><![CDATA["John Doe" <jdoe@nowhere.com>]]></Email>
>> ></employee>
>> ></employees>
>> >
>> >
>> >===========HTML FILE=================
>> ><HTML>
>> ><BODY topmargin="1" leftmargin="1" onmousedown="push_me()"

>onmousemove="window.status
>> >= 'Employee Directory'">
>> ><XML id=xmldso></XML>
>> ><SCRIPT>
>> >xmldso.async = false;
>> >xmldso.load("eedir.xml");
>> >var xmldoc = xmldso.cloneNode(true);
>> >
>> >function sort(xsldoc){
>> > syncChanges();
>> >

>xmldoc.documentElement.transformNodeToObject(xsldoc.documentElement,xmldso.X
>MLDocument);
>> >}
>> >
>> >function syncChanges(){
>> > for (var i=0;i<xmldso.documentElement.childNodes.length;i++)
>> > {
>> > var currentNode =

>xmldso.documentElement.childNodes(i).cloneNode(true);
>> > var query = "employee[EID = '" + currentNode.childNodes.item(0).text
>> >+ "']";
>> > var origNode = xmldoc.documentElement.selectSingleNode(query);
>> > }
>> >}
>> ></SCRIPT>
>> ><TABLE DATASRC='#xmldso' BORDER CELLPADDING=3>
>> > <THEAD>
>> > <TH style="font-family: ARIAL; font-size: 8pt">Last</TH>
>> > <TH style="font-family: ARIAL; font-size: 8pt">First</TH>
>> > <TH style="font-family: ARIAL; font-size: 8pt">Title</TH>
>> > <TH style="font-family: ARIAL; font-size: 8pt">Email</TH>
>> ></THEAD>
>> > <TR>
>> > <TD style="font-family: ARIAL; font-size: 8pt"><SPAN

>DATAFLD="Last"></SPAN></TD>
>> > <TD style="font-family: ARIAL; font-size: 8pt"><SPAN

>DATAFLD="First"></SPAN></TD>
>> > <TD style="font-family: ARIAL; font-size: 8pt"><SPAN

>DATAFLD="Title"></SPAN></TD>
>> > <TD style="font-family: ARIAL; font-size: 8pt"><SPAN

>DATAFLD="Email"></SPAN></TD>
>> > </TR>
>> ></TABLE>
>> ></BODY>
>> ></HTML>

>>

>
>