Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Tabelle dinamiche XSL

  1. #1
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,881

    Tabelle dinamiche XSL

    Ho la necessità di creare una pagina XSL/XML creando una tabella dinamica. La soluzione l'ho reperita in rete ma non riesco a capire/trovare soluzioni per ordinare e filtrare i dati.

    Infatti, se inserisco il sort non ottengo nessun risultato e con uno statement XSL:IF all'interno del codice, mi ritrovo con righe a contenuto diverso (2, 4, 1 elemento) in quanto la selezione viene fatta sui cinque elementi originali.

    Qualcuno sa come si fa ad ottenere le righe sempre di cinque elementi e solo di quelli che mi interessano?

    Questo è il codice di esempio che ho trovato e su cui mi sono basato per la mia pagina:

    ------ XML --------
    <items>
    <item desc="BA"/>
    <item desc="BE"/>
    <item desc="BI"/>
    <item desc="BO"/>
    <item desc="BU"/>
    <item desc="CA"/>
    <item desc="CE"/>
    <item desc="CI"/>
    </items>

    ------- XSL -------
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xslutput method="html" indent="yes" />
    <xsl:template match="/items" >
    <html>
    <body >
    <table border="1">
    <xsl:apply-templates />
    </table>
    </body>
    </html>
    </xsl:template>
    <xsl:template match="item[(position()-1) mod 5 = 0]" >
    <tr>
    <td><xsl:value-of select="@desc" /></td>
    <xsl:for-each select="following-sibling::node()[position() &lt; 5]">
    <td><xsl:value-of select="@desc" /></td>
    </xsl:for-each>
    </tr>
    </xsl:template>
    </xsl:stylesheet>

    Ciao a tutti

  2. #2
    che cosa vorresti fare?

    "Qualcuno sa come si fa ad ottenere le righe sempre di cinque elementi e solo di quelli che mi interessano?"

    quali elementi ti interessano? con quale regola li vuoi filtrare?

    non capisco perche' vi ostinate ad usare l'apply-templates quando c'e' un modo molto piu' semplice di fare le cose:

    <xsl:for-each select="/items/item/position() &lt; 5">

    questo ti stampa solo i primi 5 item..

  3. #3
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,881
    L'esempio riportato è solo un "esempio". Nel mio caso ho molti dati che vorrei selezionare per informazioni diverse (es. anagrafiche, estrarre solo quelle di un paese, o di un cap, ...) e quindi ordinarli in ordine alfabetico. Serve quindi un XSL:IF ... seguito da un XSL:SORT che non hanno effetto all'interno dello statement following sibling.

    Ho trovato qualcosa che indica di utilizzare una tabella temporanea in cui scaricare l'output di selezione + sort, ma non ho ancora capito come utilizzarla.

    Inoltre l'output devo intabellarlo in n (per esempio 5) colonne, ma i dati sono molti di più. Non mi servono solo i primi 5.

    Maurizio

  4. #4
    Originariamente inviato da salasir
    Inoltre l'output devo intabellarlo in n (per esempio 5) colonne, ma i dati sono molti di più. Non mi servono solo i primi 5.
    scusami ma non ho capito ancora nulla...

  5. #5
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,881
    Vediamo di semplificare.

    Teniamo come punto fisso l'output. Deve essere presentato come una tabella di x colonne e n righe.
    Questo presuppone l'istruzione following-sibling... (oppure di qualche altra soluzione che non conosco).

    Supponiamo che l'esempio di cui sopra non sia ordinato, come devo fare per sortarlo prima di visualizzarlo?

  6. #6
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,881
    Qualcuno ha qualche idea?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    Questa soluzione di eleonora a me non funziona:
    <xsl:for-each select="/items/item/position() &lt; 5">

    Questo è l'errore:
    Previsto NodeTest. //RECORD/-->position<--() < 7 Errore durante la compilazione del foglio di stile incluso o importato "temp.xslt".

    il tag Record contiene dei sotto tag che possono variare.

    Io fin'ora ho sempre costruito dinamicamente via asp un xslt incluso in quello principale ma questo post di salasir mi ha acceso una certa curiosità.
    Ciao
    Marco

  8. #8
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,881
    Non è mai capitato a nessuno di ordinare ed intabellare dati da XML??

  9. #9
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,881
    Il silenzio significa che devo abbandonare ogni speranza ?

  10. #10

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.