PDA

View Full Version : xml - xslt help urgente please


IspiCiosa
13-06-2007, 11:01
ragazzi ho un problema sto cercandi di trasormare dei documenti xml con xslt

solo che non capisco come si usa la funzione template

tipo <xsl:template match"/">

help me please

tglman
13-06-2007, 14:04
allora.... è semplice ;)

questo

<xsl:template match="/">ss</xsl:template>

significa semplicemente quando trovi la root del file xml metti "ss".

nell'attributo match va messa un'espressione XPATH

per esempio l'espressione "/pippo/pluto" viene soddissfatta da

<pippo><pluto></pluto></pippo>


per maggiori info

http://www.w3schools.com/xsl/

IspiCiosa
13-06-2007, 15:33
si ma allora per fare un esempio l'esercizio 4 qui (www.dsi.unive.it/~xml/esercitazioni.html)

il secondo esercizio

non si dovrebbe fare cosi???:



<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html"/>

<xsl:template match="/">
<html>
<xsl:if test="@listino=pubblico">

<xsl:value-of select="@codice"/>
<xsl:value-of select="descrizione"/>
<xsl:value-of select="@prezzo"/>
</xsl:if>

</html>
</xsl:template>
</xsl:stylesheet>




è sbagliato cosi?

tglman
13-06-2007, 15:38
si mi sa che è sbagliato, dovrebbe essere cosi:



<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html"/>

<xsl:template match="/prodotti/prodotto">
<html>
<head>
</head>
<body>
<xsl:if test="@listino=pubblico">
<xsl:value-of select="@codice"/><br>
<xsl:value-of select="descrizione"/><br>
<xsl:value-of select="@prezzo"/><br>
</xsl:if>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


nn so sè ho fatto qualche errore nn ricordo bene come funziona tutto ;)

IspiCiosa
13-06-2007, 15:54
mi da errore sulla chiusura del if perchè??ù

i br non hanno il tag di chiusura

credo siano quelli ma cmq non mi dà niente in output

tglman
13-06-2007, 16:10
si scusa quello è errato mi era un'attimo sfuggito l'xml :doh: :doh: :doh:

IspiCiosa
13-06-2007, 16:14
ma cmq mi da un output tutto vuoto

tglman
13-06-2007, 16:39
forse c'è qualchè problema che nn vedo ;)

comunque prendi per esempio questo:http://www.w3schools.com/xsl/xsl_for_each.asp

prova a mettere il path completo nel select.

IspiCiosa
13-06-2007, 16:54
<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>



<xsl:for-each select="prodotti/prodotto">

<xsl:value-of select="descrizione"/>
<xsl:value-of select="@codice"/>

</xsl:for-each>

</body>
</html>
</xsl:template>

</xsl:stylesheet>





ho provato cosi ma non funzia

tglman
13-06-2007, 17:02
Domanda stupida, ma con cosa lo stai provando ??

IspiCiosa
13-06-2007, 17:07
con xmlspy

in output mi da solo le scritte html praticamente


PS "il programma lo scaricato da un paio di giorni quindi non so se sbaglio io ma non credo"


è questo (http://download.html.it/software/vedi/2653/xmlspy-enterprise-edition/)

tglman
13-06-2007, 17:14
Conosco il tool è il meglio ;)
comunque mi sto perdendo pure io, e poi sto andando a casa ;)

ciao fai altre prove la stada è questa !!

IspiCiosa
13-06-2007, 17:24
grazie mille cmq!!!


se intanto qualcun altro sa gli errori che sto facendo sono ben accetti altri suggerimenti