Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093

    [PHP5] xml, xslt e consigli su progetto

    Salve a tutti,

    sto per iniziare la costruzione di una serie di classi per la gestione di alcuni miei documenti xml.

    Il pacchetto completo dovrà fare questo: leggere un file xml scritto seguendo le regole descritte in un mio dtd (quindi dovrei anche validare il documento), tradurre questo file in un file php seguendo alcune regole.

    Per fare ciò credo mi possa essere utile xslt. Per farlo con php, potrei usare le sablotron (che non sono installate di default sui normali webserver), dovrò fare una classe che tramite queste librerie mi traduca il file da xml a php. L'intero package infatti non è altro che uno strumento per sviluppatori (solo per me ), quindi è sufficiente che le sablotron siano installate sul mio computer quando "compilo" i file xml

    Tutto chiaro?? forse
    in due righe, deve tradurre un xml in un php secondo miei precisi criteri

    Quello che vorrei da voi è un parere sul modus operandi, se ci sono tecnologie alternative migliori per fare quello che mi serve e magari qualche link per approfondire alcuni passaggi complicati (io di xslt non ci capisco niente, vorrei imparare però ). Il passaggio critico per me è infatti proprio l'utilizzo di xlst, forse mi converrebbe fare tutto a manina con il DOM di php5 visto che la struttura del mio xml non è complicatissima.


  2. #2
    in pratica ti serve convertire un file XML in codice php?

    la cosa è mucho interessante

    secondo me ti conviene usare XSLT per due motivi...
    1° Lo impari...
    2° Hai a disposizione una struttura più flessibile che puoi più facilmente espandere senza troppi problemi

    se vuoi aggiungere una nuova struttura non devi modificare il codice ma il DTD...ed inoltre è possibile usare questo sistema per far facilmente convertire l'XML in altri linguaggi (per altri linguaggi credo che una struttura del genere converrebbe solo per quei linguaggi con una tipizzazione debole...come python, perl e simili, però è comunque una gran cosa)

    e comunque appena superato lo scoglio iniziale andresti molto più spedito
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    Originariamente inviato da daniele_dll
    in pratica ti serve convertire un file XML in codice php?

    la cosa è mucho interessante

    secondo me ti conviene usare XSLT per due motivi...
    1° Lo impari...
    2° Hai a disposizione una struttura più flessibile che puoi più facilmente espandere senza troppi problemi

    se vuoi aggiungere una nuova struttura non devi modificare il codice ma il DTD...ed inoltre è possibile usare questo sistema per far facilmente convertire l'XML in altri linguaggi (per altri linguaggi credo che una struttura del genere converrebbe solo per quei linguaggi con una tipizzazione debole...come python, perl e simili, però è comunque una gran cosa)

    e comunque appena superato lo scoglio iniziale andresti molto più spedito
    grazie danié

    quindi in linea di massima potrei procedere come ho scritto?

    il fatto è che non voglio complicare eccessivamente la cosa, se con xslt diventa più complesso di una semplice traduzione via codice allora non mi conviene... anche se dovrei comunque rinunciare alle potenzialità per sviluppi futuri che mi offre xslt.

    So' che esiste già molta roba per la traduzione di un documento xml in codice di un linguaggio di programmazione, ma quello che serve a me non è niente di complesso. Anzi è abbastanza semplice. Hai qualche link interessante a riguardo?

  4. #4
    Dai un'occhiata qui

    http://www.meta-language.net/
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  5. #5
    Originariamente inviato da kuarl
    grazie danié

    quindi in linea di massima potrei procedere come ho scritto?

    il fatto è che non voglio complicare eccessivamente la cosa, se con xslt diventa più complesso di una semplice traduzione via codice allora non mi conviene... anche se dovrei comunque rinunciare alle potenzialità per sviluppi futuri che mi offre xslt.

    So' che esiste già molta roba per la traduzione di un documento xml in codice di un linguaggio di programmazione, ma quello che serve a me non è niente di complesso. Anzi è abbastanza semplice. Hai qualche link interessante a riguardo?
    per questo dovresti chiedere a fabio
    xo a parte il manuale PHP su google ho trovato questo

    http://www.phpclasses.org/browse/package/341.html
    http://sniptools.com/vault/sablotron...t-tutorial.htm
    http://www.php.net/manual/en/ref.xslt.php
    http://www.haypocalc.com/prog/xslt.php (è francese ma il codice parla da solo)
    http://shanx.com/php/xsl/getXsl.htm (una guida a come installare l'estension xlst)

    cmq...tieni conto che il codice sarebbe estremamente ridotto
    questo è il codice presente nell'esempio francese...

    codice:
    <?php
    // Crée le processeur XSLT
    $xh = xslt_create();
    xslt_set_base ($xh, 'file://' . getcwd () . '/');
    
    // Traite le document, puis affiche le résultat
    $result = xslt_process($xh, 'liste.xml', 'xslt.xsl');
    if (!$result)
      echo ("Erreur XSLT ...");
    else
      echo ($result);
    
    // Détruit le processeur XSLT
    xslt_free($xh);
    ?>


    con l'aggiunta che puoi anche eseguire una conversione condizionale, infatti XSLT e XML supportano Javascript e quindi puoi anche sfruttare questo punto ... in pratica potresti generare codice XML con JS che in base a delle azioni da parte del convertitore esegue delle operazioni, e tutto questo senza modificare minimamente il codice
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.