Si vous avez une recherche de StackOverflow, vous devriez trouver il y a beaucoup de questions relatives à la division des ficelles.
Voici un, par exemple:
Comma Separated String Parsing
Dans votre cas, voici comment vous l'utiliser
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/DropDownControl">
<select>
<xsl:call-template name="split">
<xsl:with-param name="list" select="@choices"/>
</xsl:call-template>
</select>
</xsl:template>
<xsl:template name="split">
<xsl:param name="list" select="''"/>
<xsl:param name="separator" select="','"/>
<xsl:if test="not($list = '' or $separator = '')">
<xsl:variable name="head" select="substring-before(concat($list, $separator), $separator)"/>
<xsl:variable name="tail" select="substring-after($list, $separator)"/>
<option>
<xsl:value-of select="$head"/>
</option>
<xsl:call-template name="split">
<xsl:with-param name="list" select="$tail"/>
<xsl:with-param name="separator" select="$separator"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Cela produit le XML suivant/HTML
<select>
<option>choice1</option>
<option>choice2</option>
<option>choice3</option>
<option>choice4</option>
</select>
Si vous pouviez utiliser XSLT2.0, vous pourriez utiliser la fonction tokenise tion. Voir cette page pour un exemple
Best way to split and render comma separated text as html
Cependant, je remarque que vous le asp.net de tagué question et C# 2.0 suggère que vous ne serez pas en mesure d'utiliser directement XSLT2.0.
Un autre exemple, étant donné que la transformation est en cours en utilisant C#, est que vous faites le fractionnement dans le code derrière, avant la transformation est terminée. Écrivez du code pour lire le XML, accédez à l'attribut, utilisez la fonction de séparation de chaînes de .Net et ajoutez des éléments enfants à l'élément DropDownControl.
Thanx Tim :) Cela a fonctionné pour moi. –