Ragazzi come faccio ad inserire un nodo in un file XML in cima? Conosco la procedura per inserirlo in coda...con Php è possibile l'inserimento in testa?
Ragazzi come faccio ad inserire un nodo in un file XML in cima? Conosco la procedura per inserirlo in coda...con Php è possibile l'inserimento in testa?
Per in cima ovviamente intendi dopo l'intestazione dell'xml vero? ovvero questo:
Se si credo che non esista un metodo del genere, se mai potresti riscrivere il file scrivendo prima quel nodo che ti serve mettere sopra e poi il resto del documento.Codice:<?xml version=".."..?>
Che, per caso, tutto questo ti serve per visualizzarli, in un'altra pagina, in oltre, mettendo in cima il nodo memorizzato per ultimo? se si non ti occorre memorizzare in cima il nodo, ma visualizzare il documento all'incontrario, cioè dall'ultimo al primo elemento, se e quello che te indenti ottenere, visto la tua domanda, altrimenti te lo scritto sopra il metodo che potrai adottare.
Ultima modifica di sevenjeak : 06-06-2011 alle ore 09.27.43
Ti spiego il problema nello specifico...
Vorrei creare un file XML su cui scrivere delle News da parte degli utenti registrati...quindi le nuove news devono andare a mettersi in cima. Adesso che ci penso dovrebbe funzionare ugualmente la stampa al contrario...
(in seguito vorrei implementare anche l'eliminazione delle News ma con la stampa al contrario non dovrebbe cambiare nulla)
Mi potresti illustrare come fare la stampa al contrario? grazie
Ti faccio un'esempio:
Più o meno il codice dovrebbe essere cosi, avendo scritto in fretta il codice, ma la condizione.Codice PHP:
$xml = new DOMdocument();
$xml->load("file_xml");
$root = $xml->documentElement();
// Supponiamo che ti interessa recuperare il testo all'interno di nome_nodo, qui estrai tutti i nodi che ti interessano
$elements = $root->getElementById("nome_nodo");
// Inserisco un ciclo for all'incontrario, con $i che è pari al numero di elementi di $elements, e che decrementa al posto di incrementare
for ($i = count($elements); isset($elements[$i]); $i--)
{
// Stampiamo il valore dell'elemento dell'indice $i, in questo, visto il form, la pagina restituisce per primo l'ultimo elemento e per ultimo il primo.
echo $elements[$i]->item(0)->nodeValue;
}
P.S.: Ovviamente la condizione del for isset(..) e scritta cosi supponendo che tutti gli elementi vengono visualizzati nella stessa pagina.
Ultima modifica di sevenjeak : 06-06-2011 alle ore 22.38.32
mi dà questo errore
Cmq per farti capire la situazione meglio il mio file xml è strutturato nel seguente modo:Fatal error: Call to undefined method DOMDocument::documentElement() in C:\xampp\htdocs\Esercizi\Sito SDW\news.php on line 21
<notizie>
<news>
<autore></autore>
<titolo></titolo>
<testo></testo>
</news>
</notizie>