Это преобразование работает с любым уровнем вложенности, вплоть до 20 :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="vIndent"
select="' 																				'"/>
<xsl:template match="li">
<xsl:value-of select=
"concat(substring($vIndent,1, count(ancestor::ul)+1),.)"/>
</xsl:template>
</xsl:stylesheet>
при применении к предоставленному документу XML :
<emailmessage>
<ul>
<li>* Dresses</li>
<ul>
<li># Professional</li>
<ul>
<li>- Mens</li>
<li>- Womens</li>
</ul>
<li># Causual </li>
</ul>
<li>* FootWear</li>
<li>* Other Accessories</li>
</ul>
</emailmessage>
дает требуемый, правильный результат :
* Dresses
# Professional
- Mens
- Womens
# Causual
* FootWear
* Other Accessories
Обновление : неограничено вложение :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="li">
<xsl:text> </xsl:text>
<xsl:for-each select="ancestor::ul"><xsl:text>	</xsl:text></xsl:for-each>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
Update2 : OP указал, что маркирующие символы (*, * и -) отсутствуют в документе XML.Вот решение, которое работает с неограниченным вложением:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="vDelims" select="'- * # '"/>
<xsl:template match="li">
<xsl:text> </xsl:text>
<xsl:for-each select="ancestor::ul"><xsl:text>	</xsl:text></xsl:for-each>
<xsl:value-of select=
"substring($vDelims,
2*(1+count(ancestor::ul) mod 3) -1,
2)"/>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
При применении к предоставленному XML-документу (как указано выше, но с удаленными маркерами) :
<emailmessage>
<ul>
<li>Dresses</li>
<ul>
<li>Professional</li>
<ul>
<li>Mens</li>
<li>Womens</li>
</ul>
<li>Causual </li>
</ul>
<li>FootWear</li>
<li>Other Accessories</li>
</ul>
</emailmessage>
получается тот же, желаемый и правильный результат :
* Dresses
# Professional
- Mens
- Womens
# Causual
* FootWear
* Other Accessories