Visualizzazione dei risultati da 1 a 9 su 9

Discussione: xsl con parametro???

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    26

    xsl con parametro???

    Vi prego potete darmi una mano?

    1)Ho un file year.xml che ha una struttura molto semplice:
    <el>
    <pubblicazione anno="2001" url="....">
    <titolo></titolo>
    <descrizione></descrizione>
    </pubblicazione>
    ...
    </el>

    Di pubblicazioni possono essercene all'infinito ma la struttura è fissa. In sostanza dovrebbe accadere questo: ho una pagina .html
    con i seguenti link:

    2003
    2002
    2001...etc.

    puntano tutti allo stesso file year.xml ma gli passano un parametro in questo modo:

    .../year.xml?ANNO=2002

    Il file prova.xsl collegato dovrebbe prima testare il parametro passato e poi semplicemente stampare a video il contenuto di <TITOLO>
    e <DESCRIZIONE>.

    Il file prova.xsl (che non funziona...perchè?)
    è questo:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:h="http://www.w3.org/HTML/1998/html4" xmlns:xlink="http://www.w3.org/1999/xlink">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl: param name="YEAR"/>
    <xsl:template match="/">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;"/>
    <LINK href="../stylesheet/main.css" rel="stylesheet" type="text/css"/>
    </head>
    <body bgcolor="#ffffff">
    
    <xsl:if test="$YEAR=2003">
    <xsl:for-each select="//pubblicazione/@YEAR='2003'">
    <xsl:apply-templates select="pubblicazione">
    </xsl:for-each>
    </xsl:if>
    							
    <xsl:if test="$YEAR=2002">
    <xsl:for-each select="//pubblicazione/@YEAR=2002">
    <xsl:apply-templates select="pubblicazione">
    </xsl:for-each>
    </xsl:if>
    							
    (tanti if per quanti sono gli anni...)
    
    </body>
    </html>
    </xsl:template>
    
    <xsl:template match="pubblicazione">
    <xsl:value-of select="titolo">
    <xsl:value-of select="descrizione">
    </xsl:template>
    
    </xsl:stylesheet>
    ma non mi visualizza nulla perchè?..
    qualcuno può aiutarmi please???


  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    26

    <xsl:if...

    Ho ricorretto il codice ed in sostanza il problema è che non entra proprio all'interno dell'if..oppure il path è sbagliato!!!???

    <xsl:if test="$anno='2003'">
    <xsl:for-each select="//pubblicazione/@anno='2003'">
    <xsl:apply-templates select="pubblicazione"/>
    </xsl:for-each>
    </xsl:if>

    vi prego aiutoooo!!!

    Mara

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    106
    Se il parametro passato è ANNO quello che inizializzi nell'xslt, nel tuo caso hai inzializzato prima YEAR e poi anno, ma per far funzionare il tutto devi inizializzare ANNO, xml - xslt è CASE SENSITIVE!!!!!!!!!!!!!!!!!

    Cezar

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    26

    lo so

    si mi sono accorta dell'errore appena finito di postare il messaggio.
    Ho corretto tutto ma il problema rimane...è come se non entrasse nell'if

    ho persino provato ad inserire questo

    <xsl:if test="anno='2003'">
    Pubblicazione
    </xsl:if>

    per farmi printare almeno a video un'elenco di Pubblicazione per quanti erano quelli del determinato anno...

    ma non ci entra proprio!!!!!!!!

    help!!!


  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    106
    allora facciamo il punto.
    Il tuo url sarà così .../year.xml?ANNO=2002

    Il tuo xslt :
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:h="http://www.w3.org/HTML/1998/html4" xmlns:xlink="http://www.w3.org/1999/xlink">
    <xslutput method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl: param name="ANNO"/>
    <xsl:template match="/">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;"/>
    <LINK href="../stylesheet/main.css" rel="stylesheet" type="text/css"/>
    </head>
    <body bgcolor="#ffffff">

    <xsl:if test="$ANNO='2003'">
    <xsl:for-each select="//pubblicazione[@ANNO='2003']">
    <xsl:apply-templates select="pubblicazione">
    </xsl:for-each>
    </xsl:if>

    <xsl:if test="$ANNO='2002'">
    <xsl:for-each select="//pubblicazione[@ANNO='2002']">
    <xsl:apply-templates select="pubblicazione">
    </xsl:for-each>
    </xsl:if>

    (tanti if per quanti sono gli anni...)

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

    <xsl:template match="pubblicazione">
    <xsl:value-of select="titolo">
    <xsl:value-of select="descrizione">
    </xsl:template>

    </xsl:stylesheet>


    fammi sapere se così và bene.
    Se poi vuoi mandami xml e xslt a cesar.p@tiscalinet.it con i dettagli dell'url che passa i parametri e ti rimando l'xslt corretto.

    Cezar

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    26

    grazie!!!!



    grazie milleeee!!!!
    ci provo subito...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    26

    ancora nulla...

    ehi effedue! Allora ti conosco!!:quote:
    Sono Mara (ti dice niente XMLaw?)
    ebbene sì, sto sviluppando una sotto-sotto-molto sotto-applicazione sempre per quella storia lì...ma non mi riesce?

    ieri ho poi provato con l'XPath che mi hai inviato (avevo sbagliato il path per l'attributo)...ma cmq niente!!!

    Non so proprio quale possa essere il problema..anche perchè la tabella in cui si trova appare...ma il resto no.

    Ho provato anche a "stabellarlo" proprio come era nel tuo file..e nulla!


  8. #8
    potrebbe essere qui l'errore:

    <xsl: param name="ANNO"/>
    -----^

    c'è uno spazio tra xsl: e param che non ci dovrebbe essere.
    www.minifloppy.it - Dove ASP, XML, XSLT si incontrano...

    Io arrivo sempre tardi in ufficio, ma cerco di rimediare andando via presto

  9. #9
    Originariamente inviato da G@X
    potrebbe essere qui l'errore:

    <xsl: param name="ANNO"/>
    -----^

    c'è uno spazio tra xsl: e param che non ci dovrebbe essere.
    Quello l'ho inserito io perché altrimenti avrebbe visualizzato la faccina
    My space! Voglio Arthur!!!
    Ho fatto strike!!!
    dotty78

    Prima di postare in “XML, XSL, Smil” dai uno sguardo ai Link utili!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.