Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - problema scrittura file xml con php
Forum - PHP - problema scrittura file xml con php

Avatar
alex1995 (Normal User)
Expert


Messaggi: 212
Iscritto: 27/01/2011

Segnala al moderatore
Postato alle 11:15
Domenica, 28/08/2011
ciao a tutti ho un problema, non riesco a scrivere nei file xml con php, questo è il mio sorgente:

Codice sorgente - presumibilmente Php

  1. <?php
  2. $xml = simplexml_load_file("db.xml");
  3. foreach($xml->articolo as $articolo)
  4. {
  5.         $articolo->id = "3";
  6.         $articolo->titolo = "titolo";
  7.         $articolo->autore = "alex";
  8.         $articolo->data = "data";
  9.         $articolo->testo = "testo";
  10. }
  11. $f = fopen("db.xml", "w");
  12. foreach($xml->articolo as $articolo_w)
  13. {
  14. fwrite($f,  $xml->asXML());
  15. }
  16. fclose($f);
  17. ?>



questa è una prova ma quando la eseguo non da errori ma cancella tutto il contenuto del file xml e lo lascia vuoto.

invece questo è il file xml:

Codice sorgente - presumibilmente Plain Text

  1. <?xml version="1.0" edataoding="UTF-8"?>
  2. <articoli>
  3.        
  4.     <articolo>
  5.                 <id>2</id>
  6.         <titolo>titolo</titolo>
  7.         <autore>autore</autore>
  8.         <data>data</data>
  9.         <testo>testo</testo>
  10.     </articolo>
  11.     <articolo>
  12.                 <id>1</id>
  13.         <titolo>titolo 2</titolo>
  14.         <autore>autore 2</autore
  15.         <data>data</data>
  16.         <testo>testo</testo>
  17.     </articolo>
  18. </articoli>



e quando lo apro col browser mi dice che ci sono caratteri non validi ma a me sembra corretto.


PM
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 11:29
Domenica, 28/08/2011
Ciao, prova a modificare:
Codice sorgente - presumibilmente Plain Text

  1. $f = fopen("db.xml", "w");


con
Codice sorgente - presumibilmente Plain Text

  1. $f = fopen("db.xml", "a");


"a" sta per append e scrive sul file partendo dalla fine :k:

Ultima modifica effettuata da jack92 il 28/08/2011 alle 11:31
non succede niente tranne che il file resta com' è e da quest errore: - alex1995 - 28/08/11 11:46
[][] - alex1995 - 28/08/11 11:47
mi scuso ma ho premuto invio [code]Errore interpretazione XML: la dichiarazione XML non è ben formata Indirizzo: http://fusiontest.altervista.org/db.xml Linea numero 1, colonna 21:<?xml version="1.0" edataoding="UTF-8"?> --------------------^[/code] - alex1995 - 28/08/11 11:47
Attento al tag autore.. non è ben chiuso: </autore - jack92 - 28/08/11 12:33
grazie ora va meglio però lo script scrive 2 volte i dati sul file xml e scrive anche l' intestazione xml e quindi il file xml restituisce un errore :S come faccio ad aggiungere solo <articolo> <id>2</id> <titolo>titolo</titolo> <autore> - alex1995 - 28/08/11 13:22
Non saprei, non ho mai lavorato con i file xml, ma credo che sia sufficiente trattarle come delle comuni stringhe... comunque presumo che esista una funzione apposita in PHP - jack92 - 28/08/11 14:54
ho trovato tutto grazie :9 - alex1995 - 07/09/11 16:49
ciao :), simplexml_load_file genera un array con gli elementi del file e io vorrei visualizzare questo array al contrario, e ho provato con krsort, arsort e array_reverse ma non succede niente potete aiutarmi? - alex1995 - 14/01/12 15:56


"Il sapere umano appartiene al mondo"
PM