Creare un nuovo file XML e scrivere i dati su di esso?

Devo creare un nuovo file XML e scriverlo sul mio server. Quindi, sto cercando il modo migliore per creare un nuovo file XML, scrivere alcuni nodes di base su di esso, salvarlo. Quindi riaprilo e scrivi altri dati.

Ho usato file_put_contents() per salvare il file. Ma, per crearne uno nuovo e scrivere alcuni nodes base, non sono sicuro del metodo migliore.

Idee?

DOMDocument è un'ottima scelta. È un module appositamente progettato per creare e manipolare documenti XML. Puoi creare un documento da zero o aprire documenti esistenti (o stringhe) e navigare e modificare le loro strutture.

 $xml = new DOMDocument(); $xml_album = $xml->createElement("Album"); $xml_track = $xml->createElement("Track"); $xml_album->appendChild( $xml_track ); $xml->appendChild( $xml_album ); $xml->save("/tmp/test.xml"); 

Per riaprire e scrivere:

 $xml = new DOMDocument(); $xml->load('/tmp/test.xml'); $nodes = $xml->getElementsByTagName('Album') ; if ($nodes->length > 0) { //insert some stuff using appendChild() } //re-save $xml->save("/tmp/test.xml"); 

PHP ha diverse librerie per la manipolazione XML .

L'approccio Document Object Model (DOM) (che è uno standard W3C e dovrebbe essere familiare se lo hai usato in altri ambienti come un browser Web o Java, ecc.). Ti permette di creare documenti come segue

 <?php $doc = new DOMDocument( ); $ele = $doc->createElement( 'Root' ); $ele->nodeValue = 'Hello XML World'; $doc->appendChild( $ele ); $doc->save('MyXmlFile.xml'); ?> 

Anche se non hai mai incontrato il DOM, vale la pena investire del tempo poiché il model viene utilizzato in molte lingue / ambienti.

Con FluidXML è ansible generare e archiviare un documento XML molto facilmente.

 $doc = fluidxml(); $doc->add('Album', true) ->add('Track', 'Track Title'); $doc->save('album.xml'); 

Il caricamento di un documento da un file è altrettanto semplice.

 $doc = fluidify('album.xml'); $doc->query('//Track') ->attr('id', 123); 

https://github.com/servo-php/fluidxml