parser xml DOM

Ciao a tutti, ho un problema con con il dom di php.

In poche parole tramite la classe dom parserizzo un albero xml...il problema che vede i nodi dell'albero come elementi e non come nodi...per cui non posso usare funzioni che lavorano sui nodi (ad esempio getFirstChild(), getParentNode() ecc...).

Il codice che utilizzo questo:

$xml_path = "File.xml";
$dom= new DOMDocument();
$dom-> preserveWhiteSpace = false;
@$dom-> load($xml_path) or die("File XML non valido!");       
$root = $dom-> documentElement;

if($root -> hasChildNodes())  
{       
    xmltree($root);  //Richiamo la funzione per l'elaborazione dell'albero XML
}

La funzione fa questo:

function xmltree($nodo)
{                        
    $figli = $nodo -> childNodes;  //Ricava figli del nodo elaborato
        
    //Processa ogni figlio del nodo
    foreach($figli as $figlio)
    {
           
        //Controlla se il nodo ha degli attributi
        if($figlio -> hasAttributes())
        {                
            $nome_nodo=$figlio->nodeName;                                
            salva_nomi($nome_nodo);
        }
        
        //Controllo se il nodo elaborato ha figli e ripete iterativamente la funzione su ogni nodo fino ad arrivare alle foglie dell'albero
        if($figlio -> hasChildNodes())
        {
            xmltree($figlio);
        }    
    }
}

Quindi i figlio sono dom element e non dom node...

Qualche idea?

inviato 4 anni fa
srock
srock
12
modificato 4 anni fa
Gianni Tomasicchio
Inserisci il codice nel Formato Formattato.zeropingas 4 anni fa
In che senso scusa?srock 4 anni fa
Puoi modificare il testo e cambiare la formattazione del testo che include del codice, in modo che sia di più facile letturazeropingas 4 anni fa
Si ma come faccio ad ottenere dei nodi?srock 4 anni fa
Puoi indicarci un link da cui scaricare "File.xml"?Gianni Tomasicchio 4 anni fa
Ho preso questo esempio http://www.giorgiotave.it/forum/scripting-e-risorse-utili/58651-pillola-leggere-il-contenuto-di-un-file-xml.htmlsrock 4 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda