Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 01-09-07, 19:48   #1 (permalink)
Esperto
 
L'avatar di Gorka
 
Data di registrazione: Apr 2006
Ubicazione: Ragusa
Messaggi: 1,676
Invia un messaggio tramite MSN a Gorka Invia un messaggio tramite Skype a Gorka
[Pillola] Lettura di un file xml

Mentre facevo un lavoro in PHP ho realizzato una funzione che spero possa essere utile a qualcun altro.
Dato in input un file xml ne legge tutto l'albero riportando il nome e il contenuto di tutti i nodi e gli attributi, sfruttando le funzionalità DOM di PHP.

La posto di seguito:

Codice PHP:
function xmltree ($nodo$p)
    {
        
$p++;
        
$rientro str_repeat("  >  "$p);
        
$figli $nodo->childNodes;
        foreach (
$figli as $figlio)
        {
            if (
$p == 1) echo "<hr>";
            echo 
"<br><br>$rientro Nodo: ".$figlio->nodeName;
            if (
$figlio->hasAttributes())
            {
                echo 
"<br>$rientro Attributi: ";
                
$attributi $figlio->attributes;
                foreach (
$attributi as $attributo)
                {
                    echo 
"$rientro Nome attributo: ".$attributo->name;
                    echo 
" Valore: ".$attributo->value;
                }
            
            }
            if (
$figlio->hasChildNodes()) xmltree ($figlio$p);
            else echo 
" Contenuto del nodo: ".$figlio->nodeValue;
        }
    } 
Un esempio di chiamata può essere (file.xml deve essere sostituito con il nome e/o percorso del vostro file).

Codice PHP:
    $dom = new DOMDocument();
    
$dom -> preserveWhiteSpace false;
    
$dom -> load (file.xml);

    
    
$root $dom ->documentElement;
    if (
$root->hasChildNodes())    xmltree ($root0); 
Gorka non in linea   Rispondi citando
Vecchio 01-09-07, 21:31   #2 (permalink)
MZ
Moderatore
 
L'avatar di MZ
 
Data di registrazione: Jun 2005
Ubicazione: Lecce-Torino
Messaggi: 509
Grande Gorka!

Molto utile, grazie..

Quando rimetto le mani sul mio pc, per arricchire il topic, posterò una versione che utilizzo in un mio sito.

Inseriremo questo topic nella raccolta di thread utili per evitare che si perdà

Grazie

__________________
MZ non in linea   Rispondi citando
Vecchio 01-09-07, 21:49   #3 (permalink)
Esperto
 
L'avatar di Gorka
 
Data di registrazione: Apr 2006
Ubicazione: Ragusa
Messaggi: 1,676
Invia un messaggio tramite MSN a Gorka Invia un messaggio tramite Skype a Gorka
Ho trovato il primo bug!

In un pezzo di XML di questo tipo:

Codice:
 <categorie>
  - <![CDATA[ustensiles de cuisine   ]]> f(clean);
considera due nodi diversi <categorie> e <![CDATA>

Se qualcun altro può fare delle prove su xml complessi sarebbe una buona cosa, così lo miglioriamo tutti insieme.
Gorka non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:19.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.