ho un xml caricato tramite dom
come faccio a caricare gli tutti elementi di quel file in un Array??Codice PHP:
$dom->load('../xml/list.xml');
$work = $dom->getElementsByTagName('app');
ho un xml caricato tramite dom
come faccio a caricare gli tutti elementi di quel file in un Array??Codice PHP:
$dom->load('../xml/list.xml');
$work = $dom->getElementsByTagName('app');
Server utilizzato: MySQL
(cit.)
Un misto tra pazzia ed intelligenza
controlla se c'è qualche metodo nativo (mi pare di no), altrimenti vedi qualcosa come Using DOMDOcument in PHP to parse XML and return an array of tree structure dove tra l'altro trovi questo:
Codice PHP:
function xml2array($xml,$recursive = false) {
if (!$recursive ) { $array = simplexml_load_string ($xml); }
else { $array = $xml ; }
$newArray = array();
$array = $array ;
foreach ($array as $key => $value) {
$value = (array) $value;
if (isset($value[0])) { $newArray[$key] = trim($value[0]); }
else { $newArray[$key][] = XML2Array($value,true) ; }
}
return $newArray;
}
Attenzione che la funzione di Eiyen richiede una stringa come parametro di ingresso e non un oggetto dom. C'è anche un piccolo typo quando la funzione viene richiamata ricorsivamente, non crea problemi ma per pulizia è bene rispettare il case nel nome funzioni.
sì... la funzione non è mia :) (c'è scritto: è presa da link):
Si si lo so ho fatto il tuo nome solo perché avevi postato tu.
eh eh... yes!![]()
mmm...
no non mi è utile a nulla...
pensavo c'è un modo per contare gli elementi (nodi) all'interno del xml???
Server utilizzato: MySQL
(cit.)
Un misto tra pazzia ed intelligenza
Sinceramente a volte mi domando se la gente prima di postare sul forum riflette. Mi viene quasi voglia di risponderti che se non ti serve a nulla di arrangiarti.
La funzione ti serve eccome e fa esattamente quello che hai richiesto. L'unica cosa come ho sottolineata, siccome accetta come parametro in ingresso un stringa XML prima di richiamare la funzione suggerita devi usare il seguente metodo sul tuo oggetto dom:
http://uk3.php.net/manual/en/domdocument.savexml.php
Per rispondere alla tua domanda sul contare gli elementi la risposta è si. Il metodo "getElementsByTagName" ritorna un oggetto di tipo "DOMNodeList" che ha un fantastico attributo pubblico length.
$dom->load('../xml/list.xml');
$work = $dom->getElementsByTagName('app');
$count = $work.length;
echo $count;
una cosa del genere???
non mi stampa nulla anche se non mi da errore...
Server utilizzato: MySQL
(cit.)
Un misto tra pazzia ed intelligenza
no scusa mi da questo errore:
Catchable fatal error: Object of class DOMNodeList could not be converted to string
Server utilizzato: MySQL
(cit.)
Un misto tra pazzia ed intelligenza