Mi sembra impossibile ottenere-param per lavorare con i modelli di applicazione. Ad esempio, ho violato gli esempi riportati in w3schools.Perché non riesco a far funzionare i parametri con apply-templates in XSL?
xsl
<xsl:template match="/">
<xsl:apply-templates>
<xsl:with-param name="test" select="'has this parameter been passed?'"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="cd">
<xsl:param name="test"></xsl:param>
parameter:
<xsl:value-of select="$test"></xsl:value-of>
</xsl:template>
xml
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
(si spera) vedrete che il parametro di prova non viene passata al template cd. Posso farlo funzionare quando uso call-template, ma non apply-templates. Cosa sta succedendo? Sto usando XSL 1.0. Si prega di ignorare il fatto che sto passando un parametro hard-coded - questo è solo un esempio.
sì - funziona ma perché l'esempio originale non funziona !? – Goran
Ahh. Ma perché il parametro non viene passato al cd? Il catalogo – darasd
è la radice qui, quindi l'esempio originale dovrebbe funzionare. E lo fa con libXSLT e Opera. – vartec