Don't use
<xsl:value-of select="text()"/>
use
<xsl:value-of select="."/>
The first selects only the first text node child, which you almost never want.
Alternatively, you might want <xsl:copy-of select="."/> or <xsl:apply-templates/> - that depends on your requirements
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference