xsl-list
[Top] [All Lists]

RE: [xsl] Problem with <xsl:if>

2009-04-05 08:48:57
 

@text() is not a valid XPath expression

Actually it is a valid expression. It selects all text nodes on the
attribute axis. There aren't any, so it returns nothing (an empty sequence).

Michael Kay
http://www.saxonica.com/


You should have an error

Xmlizer

2009/4/5 Pierluigi Fabbris <pierluigi(_dot_)fabbris(_at_)email(_dot_)it>

In my code that I?ve put down. I?ve problem for the <xsl:if  
test="./ricetta/@id =?vino_consigliato/@ricetta?">

The result should be that the program show for every 
vino_consigliato 
in ricetta that has the same id. Why the test don?t work? 
Where is the error?

Ricettario.xml
-------------------
<?xml version="1.0" encoding="ISO8859-1"?> <!DOCTYPE 
ricettario SYSTEM 
"ricettario.dtd"> <?xml-stylesheet type="text/xsl" 
href="ricettario.xsl"?> <ricettario> <ricetta titolo="Zuppa 
di cipolle 
con crostone gratinato all'emmental"
id="r1">
<ingredienti persone="4">
<ingrediente quantita="8"> cipolle grandi</ingrediente> 
<ingrediente 
quantita="4 cucchiai"> farina </ingrediente> <ingrediente 
quantita="1 
foglia"> alloro </ingrediente> <ingrediente quantita="un po'"> olio 
d'oliva </ingrediente> <ingrediente quantita="1 litro"> brodo 
</ingrediente> <ingrediente quantita="4 fette"> pancarrè 
</ingrediente> <ingrediente quantita="100 grammi"> emmental 
</ingrediente> <ingrediente quantita="q.b."> sale e pepe 
</ingrediente> </ingredienti> <preparazione> Mettete a soffriggere 
nell'olio d'oliva l'alloro e aggiungere la cipolla precedemente 
affetata fine e farla cucinare a fuoco lento fino a che non 
imbiondisce.
Aggiungere poi la farina e far rosolare fino a quando non prende un 
bel colore dorato. Aggiiungere il brodo e lasciar cucinare 
ancora per 
venti minuti circa, in modo che la zuppa so presenti ben cremosa.
A parte mettere le fette di pancarrè in una teglia metterci sopra 
dell'emmental (a piacere una spolverata di paprika) e 
infornare per 8 
minuti a forno caldo.
Servire la zuppa con il crostone fondente sopra.
</preparazione>
</ricetta>
<ricetta titolo="Canederli di zucca con radicchio trevisano 
e pancetta 
croccante" id="r2"> <ingredienti persone="4"> <ingrediente 
quantita="8"> panini</ingrediente> <ingrediente 
quantita="100 grammi"> 
zucca </ingrediente> <ingrediente quantita="100 grammi"> formaggio 
asiago </ingrediente> <ingrediente quantita="2"> uova 
</ingrediente> 
<ingrediente quantita="1 bicchiere"> latte </ingrediente> 
<ingrediente 
quantita="un po'"> prezzemolo tritato </ingrediente> <ingrediente 
quantita="100 grammi"> pancetta a pezzi </ingrediente> <ingrediente 
quantita="200 grammi"> burro </ingrediente> <ingrediente 
quantita="q.b."> sale e pepe </ingrediente> </ingredienti> 
<preparazione> Tagliare la zuccca e cubetti, farla padellare con un 
po' di burro e lasciarla cucinare per 10 minutii. In una bacinella 
abbastanza capiente mettere il pane tagliato a pezzetti, le 
uova, il 
prezzemolo, la zucca, il latte, sale e pepe.
Amalgamare il tutto formando un impasto morbido e omogeneo 
(in base al 
pane usato può cambiare la consistenza dell'impasto; se si presenta 
troppo asciutto aggiungere un po' di latte; se si presenta troppo 
bagnato aggiungere un po' di pane gratuggiato).
Formare poi dei piccoli canederli e dargli una forma un po' 
ovalizzata 
e cucinarli per 15 minuti in acqua salata. Disporli in 
piatti a forma 
di stella e metterci sopra il radicchio tagliato a pezzetti. In una 
padella far abbrustolire la pancetta nel rimanente burro e 
caspargere 
poi sopra i canederli; spolverare di parmiggiano e servire.
</preparazione>
</ricetta>
<vino_consigliato ricetta="r1">
pinot grigio
</vino_consigliato>
<vino_consigliato ricetta="r2">
muller thurgau
</vino_consigliato>
</ricettario>

Ricettario.xsl
--------------------

<?xml version="1.0" encoding="ISO8859-1"?> <xsl:stylesheet 
version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="ricettario">
<html>
                <head>
                               <title> Ricette </title>
                </head>
                <body>
                <xsl:apply-templates/>
                </body>
</html>
</xsl:template>
<xsl:template match="ricetta">
                <center>
                <h1>
                <xsl:value-of select="./@titolo"/>
                </h1>
                </center>
                <br/>
                <br/>
                <br/>
                <br/>
                <xsl:apply-templates/>
                <br/>
                <xsl:if test="./ricetta/@id 
=vino_consigliato/@ricetta">
                               <xsl:value-of 
select="/ricettario/vino_consigliato/@text()"/>
                </xsl:if>
</xsl:template>
<xsl:template match="ingredienti">
<table align="center">
<tr>
<td >
ingredienti per <xsl:value-of select="./@persone"/> persone </td> 
</tr> <tr> <td> Quantità </td> <td> Ingrediente </td> </tr> 
<xsl:for-each select="ingrediente"> <tr> <td> <xsl:value-of 
select="./@quantita"/> </td> <td> <xsl:value-of select="./text()"/> 
</td> </tr> </xsl:for-each> </table> <br/> <br/> <br/> <br/> 
</xsl:template> <xsl:template match="preparazione"> <p 
align="justify">
                <xsl:value-of select="./text()"/> </p> 
</xsl:template> 
</xsl:stylesheet>


Sincerally yours.

Fabbris Pierluigi
Via alle Grazie, 10/a
38050 Canal San Bovo
Tel. 3467168672





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>