Visualizzazione risultati 1 fino 4 di 4

Discussione: Debugger PHP XML

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito Debugger PHP XML

    Si puo' fare un'applicazione PHP che legga un file xml e dato un nodo lo evidenzi sull'albero?

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    La classe DOMDocument di PHP ti permette di gestire il file XML come fosse un albero logico, quindi giostrando un po' con quella dovresti ottenere quello che ti serve.

    Resta da capire che cosa intendi con "evidenziare il nodo sull'albero"... o meglio, quale dovrebbe essere l'output di PHP che realizzi quello che chiedi.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ad esempio mi servirebbe una funzione che, dato un nodo radice R e un nodo generico N, disegna graficamente l'albero che ha per radice R e colora di giallo il nodo N...

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per questo riguarda l'albero, puoi stamparlo con questa funzione (attenzione perché è ricorsiva: se il file ha troppi nodi annidati può provocare errori):
    Codice PHP:
    function stampa_albero ($nodo)
    {
    echo
    '<blockquote>';
    echo
    '&lt;' . $nodo->nodeName;
    $attrib = array();
    foreach (
    $nodo->attributes as attrName => attrValue)
    $attrib[] = $attrName . '="' . $attrValue . '"';
    echo
    ' ' . implode (' ', $attrib) . '&gt;';
    $figli = $nodo->childNodes;
    for (
    $i = 0; $i < $figli->length; $i++)
    stampa_albero ($figli->item($i));
    echo
    '&lt;/' . $nodeName . '&gt;';
    echo
    '</blockquote>';
    }

    $xml = new DOMDocument ();
    stampa_albero ($xml->documentElement);
    Per evidenziare il nodo che ti serve, aggiungi un secondo parametro alla funzione stampa_albero, che sarà il tuo nodo di riferimento (ovviamente, prima di chiamare stampa_albero la prima volta, dovrai individuarlo questo nodo). All'inizio del corpo della funzione confronta il nodo attuale (primo parametro) con il nodo di riferimento (secondo parametro): se questi sono uguali, modifica l'output di conseguenza.

    Scusami per il ritardo nella risposta...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •