xml замена значений ключа

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
У меня есть вот такой xml
<item id="wz_music_admin_inc_php_1"><![CDATA[запрещенная операция]]></item>
Я принимаю скриптом ключ wz_music_admin_inc_php_1 и новое значения. Подскажите как мне после импорта файла xml в скрипт заменять там значения? И сохранять оригинальный файл но с новыми значениями, то есть там не только такие поля..
 
Подход 1. Идеологически верный.
- Принимаем файл
- Парсим его, как DOMDocument, получая объект
- Обходим полученное дерево, меняем значение, перезаписываем файл

Подход 2. В лоб.
- Принимаем файл
- Делаем file_get_contents()
- Меняем подстроку
PHP:
$result = preg_replace('%^(<item.+wz_music_admin_inc_php_1.+!\[CDATA\[)запрещенная операция(\]\]></item>)$%im', '$1новое значение$2', $subject);
- Регулярку, скорее всего, придётся модифицировать под конкретный файл, но идею я передал.
- Записываем file_put_contents()

Cons and Pros
Второй способ быстрее и выполняется чуть ли не в виде маленького консольного приложения, но могут быть подводные камни, если исходный XML файл сменит формат. Парсить XML и подменять значение - более гибкий процесс и страхует от всяких нежданчиков, но сам скрипт получится существенно сложнее. Особенно, если до этого не доводилось работать с DOM (Document Object Model).
 
Назад
Сверху