2011-02-05 16 views
24

Ho deciso di salvare le impostazioni nel file xml poiché il campo richiede un solo valore.Un semplice programma per i valori di nodo e nodo CRUD del file xml

mio file XML è come

<?xml version="1.0" encoding="UTF-8"?> 
<setting> 
    <setting1>setting1 value</setting1> 
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
    .... 
    .... 
    .... 
</setting> 

Qualcuno mi può suggerire uno script php semplice da leggere, modificare, aggiungere e cancellare i valori dei nodi e nodi?

risposta

23

Se il tuo XML è davvero così semplice, puoi usare SimpleXML in CRUD. SimpleXml analizzerà l'XML in una struttura ad albero di SimpleXmlElements. In poche parole, si utilizza in questo modo:

// CREATE 
$config = new SimpleXmlElement('<settings/>'); 
$config->setting1 = 'setting1 value';   
$config->saveXML('config.xml');    

// READ 
$config = new SimpleXmlElement('config.xml'); 
echo $config->setting1; 
echo $config->asXml(); 

// UPDATE 
$config->setting1 = 'new value'; 
$config->setting2 = 'setting2 value'; 
echo $config->asXml(); 

// DELETE 
unset($config->setting1); 
$config->setting2 = NULL; 
echo $config->asXML(); 
unlink('config.xml'); 

prega di fare riferimento al manuale di PHP per ulteriori usage examples e API description.

Su un sidenote, se davvero basta coppie chiave/valore, si potrebbe anche usare un plain old PHP array di immagazzinarli o di un negozio chiave/valore come DBA o anche APC e memcached con una lunga TTL.

3

È possibile utilizzare l'estensione PHP XQuery per fare il lavoro:

let $data := <setting> 
    <setting1>setting1 value</setting1> 
    <setting2>setting2 value</setting2> 
    <setting3>setting3 value</setting3> 
</setting> 
return { 
    (: Update :) 
    replace value of node $data/setting1/text() with "Hello World"; 
    (: Delete :) 
    delete node $data/setting2; 
    (: Read :) 
    $data 
} 

Si può provare l'esempio di cui sopra, vivono a http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=

Le istruzioni su come installare l'estensione XQuery PHP sono disponibili presso http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery

+1

+1: questa estensione è davvero eccezionale. – hakre

Problemi correlati