Ciao a tutti, ho la seguente lista in formato xml (che contiene un sottoinsieme di tag appartenenti ad xhtml):

codice:
<opzioni>
  <ul>
  <li class="layout" id="layout_1.css">layout_1.css
   <ul>
	[*]carpa_11.css
	[*]carpa_12.css[/list]
  
	<li class="layout" id="layout_2.css">layout_2.css
   <ul>
	[*]carpa_21.css[*]carpa_22.css[/list]
        [/list]
</opzioni>
Vorrei riuscire a trasformarlo in questo:

codice:
<select>
<optgroup label="layout1.css">
<option value ="carpa_11.css">carpa_11.css</option>
<option value ="carpa_12.css">carpa_11.css</option>
</optgroup>
<optgroup label="layout2.css">
<option value ="carpa_21.css">carpa_21.css</option>
<option value ="carpa_22.css">carpa_22.css</option>
</optgroup>
</select>
Ho provato un po' di tutto, il tentativo che piu ci va vicino è questo
(ma il problema è che optgroup non deve avere un nodo di testo al suo interno che ne definisca il nome, bensì un attributo "value" con tale valore.
Riesco a settare l'attributo in questione, ma non riesco a rimuovere il nodo di testo..):

codice:
<xsl:template match="opzioni">
<div class="marcatore-poliwiki" id="opzioni" >
<xsl:apply-templates select="./ul"/>
</div>   
</xsl:template>

<xsl:template match="opzioni/ul">
<div id="opzioni" class="marcatore-poliwiki">
<select>
<xsl:apply-templates/>
</select>
</div>
</xsl:template> 

<xsl:template match="opzioni/ul/li">
<optgroup>

<xsl:apply-templates/>
</optgroup>
</xsl:template>

<xsl:template match="opzioni/ul/li/ul">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="opzioni/ul/li/ul/li">
<option>
<xsl:attribute name="value">
<xsl:value-of select="current()"/>
</xsl:attribute>

<xsl:apply-templates/>
</option>
</xsl:template>