2011-02-05 24 views
24

Decidí guardar la configuración en el archivo xml ya que el campo toma solo un valor.Un programa simple para nodo CRUD y valores de nodo del archivo xml

Mi archivo XML es como

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

Puede alguien sugerir un simple script php para leer, editar, añadir y borrar valores de nodo y nodo?

Respuesta

23

Si su XML es realmente así de simple, puede usar SimpleXML para CRUD. SimpleXml analizará el XML en una estructura de árbol de SimpleXmlElements. En pocas palabras, se utiliza de esta manera:

// 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'); 

Por favor consulte el manual de PHP para más usage examples y la API description.

En una nota, si realmente sólo hay pares clave/valor, usted podría también utilizar un plain old PHP array para almacenarlos o una tienda de clave/valor como DBA o incluso APC y memcached con una larga TTL.

3

Puede utilizar la extensión PHP XQuery para realizar el trabajo:

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 
} 

Puede probar el ejemplo anterior vivir en http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=

Las instrucciones sobre cómo instalar la extensión de XQuery PHP están disponibles en http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery

+1

+1: Esa extensión realmente mece. – hakre

Cuestiones relacionadas