You have to implement CSV quoting rules in your stylesheet. For example:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<!-- Taken from XSLT Cookbook, chapter 1.7 (http://www.oreilly.com/catalog/xsltckbk/) -->
<xsl:template name="search-and-replace">
<xsl:param name="input"/>
<xsl:param name="search-string"/>
<xsl:param name="replace-string"/>
<xsl:choose>
<!-- See if the input contains the search string -->
<xsl:when test="$search-string and
contains($input,$search-string)">
<!-- If so, then concatenate the substring before the search
string to the replacement string and to the result of
recursively applying this template to the remaining substring.
-->
<xsl:value-of
select="substring-before($input,$search-string)"/>
<xsl:value-of select="$replace-string"/>
<xsl:call-template name="search-and-replace">
<xsl:with-param name="input"
select="substring-after($input,$search-string)"/>
<xsl:with-param name="search-string"
select="$search-string"/>
<xsl:with-param name="replace-string"
select="$replace-string"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- There are no more occurences of the search string so
just return the current input string -->
<xsl:value-of select="$input"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Quote the string according to CSV rules (http://en.wikipedia.org/wiki/Comma-separated_values) -->
<xsl:template name="csv-quote">
<xsl:param name="value"/>
<xsl:choose>
<!-- To be on the safe side, append '	 ' (tabulation and space)
to the list of special characters below // Anton Lapounov -->
<xsl:when test="translate($value, '

",', '') = $value">
<!-- No quoting needed, just return the string -->
<xsl:value-of select="$value"/>
</xsl:when>
<xsl:otherwise>
<!-- Enclose in quotes, doubling all quotes encountered in the string -->
<xsl:text>"</xsl:text>
<xsl:call-template name="search-and-replace">
<xsl:with-param name="input" select="$value"/>
<xsl:with-param name="search-string" select="'"'"/>
<xsl:with-param name="replace-string" select="'""'"/>
</xsl:call-template>
<xsl:text>"</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/emailList/person">
<xsl:call-template name="csv-quote">
<xsl:with-param name="value" select="name"/>
</xsl:call-template>
<xsl:text>,</xsl:text>
<xsl:call-template name="csv-quote">
<xsl:with-param name="value" select="email"/>
</xsl:call-template>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
Best regards,
Anton