Intereting Posts
PHP обнаруживает (или удаляет) текущую букву диска? Рекурсивное меню PHP в структуре списка HTML Отображение данных из двух таблиц с отношением «многие ко многим» с использованием PHP / CodeIgniter PHP Script для вычисления значений форм со значениями по умолчанию, возможно, с использованием операторов if и else для submit. to page2.php Как я могу отправить push-уведомление нескольким устройствам за один раз в iPhone? PHP file_get_contents с php нетронутыми? используя php preg_replace для добавления значений src независимо от того, насколько плохо сформирован элемент img Объединение нескольких массивов по индексу PHP: Есть ли функция, которая преобразует строку даты в читаемый человеком формат? Определение типа Mime локального файла (Content-type) с помощью PHP как я могу получить вставленный id php и oracle Простой вопрос массива в PHP Необходимо загрузить файлы в документы Google из моего приложения и сохранить ссылку на загруженный файл Параметры маршрута Laravel 5 не отправляются Отправка правильного типа содержимого JSON для CakePHP

Редактировать XML через HTML-форму (PHP)

Я пытаюсь создать форму, которая позволит вам редактировать содержимое тега xml. В настоящее время у меня есть form.php:

<?php $data=simplexml_load_file('welcome.xml'); $welcome=$data->item->name; ?> <form method="post"> <textarea name="name"><?php echo $welcome ?></textarea> <br> <input type="submit" name="submit" value="submit"> </form> <?php if(isset($_POST['submit'])) { $data=simplexml_load_file('welcome.xml'); $data->item->name=$_POST['name']; $handle=fopen("welcome.xml","wb"); fwrite($handle,$xml->asXML()); fclose($handle); } ?> 

и welcome.xml:

 <welcome> <item> <name>$welcome</name> </item> </welcome> 

когда я нажимаю кнопку «Отправить», он не сохраняет введенные данные, он просто обновляет страницу и удаляет все значения в файле xml раньше.

ОБНОВИТЬ

Форма работает сейчас, но я добавил кнопку сброса, мне нужно очистить XML-файл, чтобы он имел только теги <welcome> . Я изменил $data->item->name=$_POST['welcome']; до $data=''; но он удаляет текст и сохраняет метки по-прежнему.

Вы можете сделать это с помощью simplexml.

Чтобы прочитать данные из xml:

 $data = simplexml_load_file('welcome.xml'); $welcome = $data->item[0]->name; 

И написать данные:

 $data = simplexml_load_file('welcome.xml'); $data->item[0]->name = $_POST['welcome']; $handle = fopen("welcome.xml", "wb"); fwrite($handle, $xml->asXML()); fclose($handle); 

EDIT: На вопрос в комментарии:

 <?php if(isset($_POST['submit'])) { $data=simplexml_load_file('welcome.xml'); $data->item->name=$_POST['name']; $handle=fopen("welcome.xml","wb"); fwrite($handle,$data->asXML()); fclose($handle); } $data=simplexml_load_file('welcome.xml'); $welcome=$data->item->name; ?> <form method="post"> <textarea name="name"><?php echo $welcome ?></textarea> <br> <input type="submit" name="submit" value="submit"> </form>