- Home
- Categorie
- Coding e Sistemistica
- Coding
- Prprietà firstChild dei DomNode nella libreria DOM
-
Prprietà firstChild dei DomNode nella libreria DOM
Ciao a tutti,
sto utilizzando la libreria DOM di php per manipolare i documenti xml ma ho
un problema con la proprietà firstChild degli oggetti DOMNode che non
riesco a risolvere. Vorrei pertanto chiedervi una mano. Vi riporto subito il
codice e poi siego il problema:<?php
$xml=new DOMDocument();
$xml->load('movies.xml');$movies=$xml->getElementsByTagName("movie"); for ($i = 0; $i < $movies->length; $i++) { $m=$movies->item($i); $t=$m->firstChild->nodeValue; echo "<p>$t</p>\n"; }
?>
Questo script apre il documento movies.xml (un elenco di film), preleva
tutti gli elementi "movie" e dovrebbe visualizzare i titoli di tutti i film
accedendo al primo figlio di ogni film (che è il titolo appunto).
Il problema è che il browser non si degna di visualizzare niente di niente,
nessun testo, nessun errore. Ho anche provato a copiare la lista dei film
restituita da getElementsByTagName in un array vero e proprio ma non è
cambiato niente. Non so più cosa inventarmi.
Vi ringrazio per l'aiuto, ciao
-
Leggi questo thread e vedi se può tornare utile al tuo scopo.
http://www.giorgiotave.it/forum/php-mysql/58651-pillola-leggere-il-contenuto-di-un-file-xml.html
Ciao!
-
Grazie Sups, posso provare a usare la funzione childNodes sui vari film e a prelevare il primo elemento della lista restituita.
Grazie ancora, ciao.
-
Ciao Sups,
ti sarò grato finchè campo! In questo modo riesco finalmente a estrarre tutti i
titoli dei film:<?php
$xml=new DOMDocument();
$xml->load('disordinato.xml');$movies=$xml->getElementsByTagName("movie");
for($i=0; $i<$movies->length; $i++)
{
$m = $movies->item($i);
$figli_m = $m->childNodes;
$t = $figli_m->item(1)->nodeValue;echo "<p>$t</p>\n";
}
?>Inizialmente la terza istruzione del ciclo era: $t = $figli_m->item(0)->nodeValue;
ma non visualizzava nulla come prima perciò ho chiesto l'item successivo ed ecco
che sono saltati fuori i titoli dei film. A questo punto credo che chiedere l'item
di indice 0 o il primo figlio con firstChild sia la stessa cosa ma non ho idea di cosa
sia esattamente restituito. La descrizione di firstChild su php.net è "the first child
of this node", vai a sapere.
Grazie ancora, mitico, ciao.