Простая программа для CRUD node и node значений xml файла
Я решил сохранить настройку в xml файле, так как поле принимает только одно значение.
Мой XML файл похож на
<?xml version="1.0" encoding="UTF-8"?>
<setting>
<setting1>setting1 value</setting1>
<setting2>setting2 value</setting2>
<setting3>setting3 value</setting3>
....
....
....
</setting>
Может ли кто-нибудь предложить мне простой php script для чтения, редактирования, добавления и удаления значений node и node?
Ответы
Ответ 1
Если ваш XML действительно такой простой, вы можете использовать SimpleXML
для CRUD it. SimpleXml проанализирует XML в древовидной структуре SimpleXmlElements. В двух словах вы используете его следующим образом:
// 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');
Пожалуйста, обратитесь к руководству по PHP для дальнейшего примеров использования и Описание API.
Если вы действительно используете пары ключ/значение, вы также можете использовать обычный массив PHP > , чтобы сохранить их или хранилище ключей/значений, например DBA или даже APC и memcached с длинным ttl.
Ответ 2
Вы можете использовать расширение PHP XQuery для выполнения задания:
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
}
Вы можете попробовать пример выше в прямом эфире http://www.zorba-xquery.com/html/demo#BJ2a2bNxJc8JVZAl0qyjAelwN9s=
Инструкции по установке расширения XQuery PHP доступны по адресу http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery