Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [XSL] Formattare una variabile datetime

    Salve,
    avrei bisogno di formattare una VARIABILE datetime.

    Es.
    in xml ho:
    <DataInizio>2007-03-14T15:13:15.61+01:00</DataInizio>

    e tramite un foglio di stile xsl voglio che lo visualizzi in:

    2007-03-14T15:13:15 cioe mi serve solo la data e l'ora senza +..........


    Spero possa trovare la soluzione..
    Grazie

  2. #2
    Ciao,
    nel caso specifico puoi utilizzare la funzione substring-before per prendere la parte di stringa che precede il punto:
    codice:
    <xsl:value-of select="substring-before('2007-03-14T15:13:15.61+01:00', '.')"/>
    Più in generale, dovresti scrivere un template che manipoli la stringa in input, estraendo le varie sezioni, e la formatti come preferisci.
    Se stai utilizzando XSLT all'interno di un'applicazione Java puoi utilizzare gli oggetti messi a disposizione da Java, come ad esempio SimpleDateFormat.

    Ciao,

  3. #3
    non so come ringrazuiarla
    Sto cercando di costruire una template, xchè
    In pratica, il foglio.xml l'ho costruito attraverso il metodo ( c#.net ):

    StoricoAllarmiDataSet.vw_StoricoAllarmiDataTable dt;
    dt.WriteXml(@"C:\prova.xml", XmlWriteMode.IgnoreSchema, false);

    XmlUrlResolver resolver = new XmlUrlResolver();

    resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // transform the personnel.xml file to html

    XslTransform transform = new XslTransform();

    // load up the stylesheet

    transform.Load(@"C:\provaHTML.xsl", resolver);

    // perform the transformation

    transform.Transform(@"C:\prova.xml", @"C:\prova.html", resolver);

    suuccessivamente, ho costruito il foflio di stile.xsl ed infine visualizzo la pagina come sopra indicato.
    Quindi penso che il mio problema viene risolto con una template ( spero di riuscirci perche sono alle prime armi ).
    Cmq Grazie mille

  4. #4

    scuse

    ok. scusami ma ho sbagliato.

  5. #5

    inoltro

    aiuto
    Scusami ma non riesco a costruire la template.
    Il file.xml è:

    <?xml version="1.0" standalone="yes" ?>
    - <StoricoAllarmiDataSet>
    - <vw_StoricoAllarmi>
    <Descrizione>TLC54 - Vico Schiaffino Scale garage</Descrizione>
    <DataInizio>2007-01-16T04:17:33.03+01:00</DataInizio>
    <Priorita>1</Priorita>
    <Zona>elsag</Zona>
    <FalsoAllarme>false</FalsoAllarme>
    <DataFine>2007-01-16T04:17:36.077+01:00</DataFine>
    <AllarmeScaduto>true</AllarmeScaduto>
    <IDStoricoAllarme>7888</IDStoricoAllarme>
    </vw_StoricoAllarmi>
    ........
    .........

    Mentre il file.xsl è:

    <html xsl:version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    lang="en">
    <head>
    <title>Sales Results By Division</title>
    </head>
    <body>
    <h2 align="center">REPORT StoricoAllarme</h2>
    <center>
    <table border="5">
    <tr>
    <th>IDStoricoAllarme</th>
    <th>Descrizione</th>
    <th>DataInizio</th>
    <th>DataFine</th>
    <th>Zona</th>
    <th>DataGestione</th>
    <th>FalsoAllarme</th>
    <th>Rapporto</th>
    <th>AllarmeScaduto</th>
    <th>Username</th>
    </tr>
    <xsl:for-each select="StoricoAllarmiDataSet">
    <xsl:for-each select="vw_StoricoAllarmi">
    <tr>
    <td>
    <xsl:value-of select="IDStoricoAllarme"/>
    </td>
    <td>
    <xsl:value-of select="Descrizione"/>
    </td>
    <td>

    <xsl:value-of select="DataInizio"/>

    </td>
    <td>
    <xsl:value-of select="DataFine"/>
    </td>
    <td>
    <xsl:value-of select="Zona"/>
    </td>
    <td>
    <xsl:value-of select="DataGestione"/>
    </td>
    <td>
    <xsl:value-of select="FalsoAllarme"/>
    </td>
    <td>
    <xsl:value-of select="Rapporto"/>
    </td>
    <td>
    <xsl:value-of select="AllarmeScaduto"/>
    </td>
    <td>
    <xsl:value-of select="Username"/>
    </td>

    </tr>
    </xsl:for-each>
    </xsl:for-each>
    </table>
    </center>
    </body>
    </html>

    Problema, come posso visializzare la data 2007-01-16T04:17:33.03+01:00 in 2007-01-16T04:17:33 cioè senza .03+01:00?
    Lei mi ha consigliato la template, però sto trovando problemi, non so come si deve procedere. Mi chiedevo se per favore mi può far vedere un esempio.
    La ringrazio anticipatamente. Buonagiornata

  6. #6
    Scusami la disturbo continuamente,
    sto scercando di utilizzare:

    codice:<xsl:value-of select="substring-before('2007-03-14T15:13:15.61+01:00', '.')"/>

    con una modifica, in pratica sostituisco ('DataInizio', '.') al posto di

    ('2007-03-14T15:13:15.61+01:00', '.')

    Ma commetto un errore xche lui come stringa DataInizio e non il valore che contiene DataInizio, ho cercato pure di mettere @DataInizio opp $DataInizio ma commetto un errore, mi dice che non esiste DataInizio.

    Non so più cosa fare.

  7. #7
    Se ti trovi nel nodo DataInizio, è sufficiente scrivere:
    codice:
    <xsl:value-of select="substring-before(., '.')"/>
    in quanto il punto indica il valore del nodo corrente.

    Ciao,

  8. #8

    ringraziamenti

    è stato molto gentile.Finalmente ho capito il problema.
    grazie mille.
    Dopo 5 giorni, grazie a Lei, ho risolto il mio problemi.

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.