Un programa simple para el nodo CRUD y los valores de nodo del archivo xml [cerrado]
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?
Si su XML es realmente así de simple, puede utilizarlo SimpleXML
para 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.
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