Un programa simple para el nodo CRUD y los valores de nodo del archivo xml [cerrado]

Resuelto S L asked hace 54 años • 2 respuestas

Decidí guardar la configuración en un archivo xml ya que el campo solo toma un valor.

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>

¿Alguien puede sugerirme un script php simple para leer, editar, agregar y eliminar nodos y valores de nodos?

S L avatar Jan 01 '70 08:01 S L
Aceptado

Si su XML es realmente así de simple, puede utilizarlo SimpleXMLpara CRUD. SimpleXml analizará el XML en una estructura de árbol de SimpleXmlElements. En pocas palabras, lo usas así:

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

Consulte el manual de PHP para obtener más ejemplos de uso y la descripción de la API .

En una nota al margen, si realmente solo tiene pares clave/valor, también puede usar una matriz PHP antigua para almacenarlos o un almacén clave/valor como DBA o incluso APC y almacenado en memoria caché con un ttl largo.

Gordon avatar Feb 05 '2011 11:02 Gordon

Puedes usar la extensión PHP XQuery para hacer 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 en vivo en http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=

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

wcandillon avatar Feb 27 '2012 12:02 wcandillon