php - simplexmlelement - Un programa simple para nodo CRUD y valores de nodo del archivo xml
simplexml_load_file (2)
Puede 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 XQuery PHP están disponibles en http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery
Decidí guardar la configuración en el archivo xml ya que el campo toma solo 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 valores de nodos y nodos?
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, lo usa 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 de clave / valor, también podría usar una matriz de PHP antigua simple para almacenarlos o un almacén de clave / valor como DBA o incluso APC y memcached con un ttl largo.