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>