I'm trying to get dropdown menus of values from a xml file, which is
the result of a SQL request:
<td>Collection</td>
// here I caught the names of the request's attributes
<idattr>sql:id_collection</idattr>
<idattr>sql:libelle_collection</idattr>
<td>
<rowset xmlns="http://apache.org/cocoon/SQL/2.0"
nrofrows="12">
<row>
<id_collection>1</id_collection>
<libelle_collection>CIP</libelle_collection>
</row>
<row>
<id_collection>2</id_collection>
<libelle_collection>Champignons</libelle_collection>
</row>
<row>
<id_collection>3</id_collection>
<libelle_collection>IEBC</libelle_collection>
</row>
</rowset>
</td>
I modified the XSL file page2html.xsl in the following way:
(I don't directly put the attributes' id s in the xsl because
I want a
generalized file,
which could work for any request' s result)
<xsl:template match="sql:rowset">
// I catch the attributes' ids in xsl variables
<xsl:variable name="idattr1" select="../../idattr[1]"/>
<xsl:variable name="idattr2" select="../../idattr[2]"/>
<select size="1" name="">
<option value="-1">- Sélectionnez :</option>
// And I try to get their values in a dropdown list
<xsl:for-each select="sql:row">
<option value= "$idattr1">
<xsl:value-of select="$idattr2"/>
</option>
</xsl:for-each>
</select>
...
All I manage to obtain is :
<td>Collection</td>
<td>
<select name="" size="1">
<option value="-1">- Sélectionnez :</option>
<option value="$idattr1">sql:libelle_collection</option>
<option value="$idattr1">sql:libelle_collection</option>
<option value="$idattr1">sql:libelle_collection</option>
</select></td>
instead of the dropdown list with the values INSIDE the "
libelle_collection" tags...
Perhaps it is a problem with Cocoon's SQL Transformer...
Has anybody a clue?
Try:
<xsl:value-of select="*[name() = $idattr2]"/>
...as you are trying to access the value of the node with the name
'sql:libelle_collection'.
cheers
andrew