Как сохранить изменения в файл с помощью библиотеки DIDOM?
Приветствую!
Возникла проблемка в работе с php библиотекой DIDOM. Я загружаю HTML из локального файла php вот таким способом: $document = new Document('page.html', true);
После произвожу поиск по селектору $elements = $document->find("div > h1"); , что происходит успешно, так как я получаю массив с одним объектом.
Далее кручу массив $elements в цикле и испльзую $item->setValue('Foo'); для изменения текста в h1. Но это значение меняется только в объекте, но не в файле php. Подскажите пожалуйста, правильно ли я понимаю, что это библиотека должна вносить изменения в файл или этот метод не для этого (setValue) ? Как тогда изменить текст который я нашёл с помощью селектора div > h1 и сохранить в том файле, в котором производился поиск ?
Методы вроде setValue() работают с объектом, они не сохраняют результаты работы в файл)
DiDOM написан поверх DOMDocument, и метод create возвращает экземпляр DOMDocument (ссылка). Можно использовать метод save (документация).
Спасибо большое за ответ!
Как я писал выше , мне метод find() возвращает массив $elements, в котором находятся экземпляры класса DiDom\Element. У этого класса есть свойство "node":protected, в котором хранится объект DOMElement. В этом объекте хранится вся информация об выбранном node (div > h1): название класса, название тега, содержимое и т.п. Но как с помощью всего этого мне изменить текст h1 и сохранить в том же файле, из которого происходило чтение.
То есть, к примеру в файле index.php было такое содержимое:
<div>
<h1>Old text</h1>
</div>
Я нахожу h1 c помощью метода find("div > h1") и изменяю с помощью метода setValue('New text'). Теперь мне нужно сохранить в тот же файл index.php, из которого происходило чтение.
В итоге в файле index.php должно быть такое содержимое:
этот класс не наследник DOMDocument, save не выйдет, я ошиблась.
Да, я это и имел ввиду когда отписался про объекты в первом комментарии...
Второй ваш комментарий мне помог , за это вам спасибо. Моя ошибка заключалась в том, что я заносил результат $document->find($selector) в переменную и дальше уже работал с ней, а нужно было продолжать работать с объектом Document.