Простая программа для узла CRUD и значения узла файла 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-скрипт для чтения, редактирования, добавления и удаления значений узлов и узлов?

2 ответа

Решение

Если ваш XML действительно так прост, вы можете использовать SimpleXML CRUD это. 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.

Вы можете использовать расширение 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

Инструкции по установке расширения XQuery PHP доступны по адресу http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery

Другие вопросы по тегам