Я новичок в DOMDocument и интенсивном PHP. Пожалуйста, простите мое невежество. Я просто не могу заставить Process.php писать в XML. Я видел другие сообщения по одной теме, но они не помогли мне решить мою проблему. Просто не могу найти то, что я сделал неправильно. Любая помощь приветствуется!Html-форму для PHP XML DOMDocument - не обновление XML
Адрес электронной почты: Форма HTML, form.html.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<form name="digitalsignage" action="process.php" onsubmit="return defaultagree(this)" method="post">
<table align="center" cellpadding="2" cellspacing="0" width="50%">
<tbody><tr>
<td> Event1:</td><td>
<input name="event1" value="Unknown" type="text"> </td>
<td> Event2:</td><td>
<input name="event2" value="Unknown" type="text"> </td>
<td> Event3:</td><td>
<input name="event3" value="Unknown" type="text"> </td>
<td> Event4:</td><td>
<input name="event4" value="Unknown" type="text"> </td>
<td> Event5:</td><td>
<input name="event5" value="Unknown" type="text"> </td>
</tr>
<tr>
<td colspan="4" style="text-align:center;">
<input name="lsr-submit" value="Submit" type="submit"></td>
</tr>
</tbody></table>
</form>
</body>
</html>
XML-файла, file.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://www.SERVER-URL-OF-FEED" rel="self" type="application/rss+xml" />
<title>Todays Events</title>
<item>
<description>
<event1>Event 1</event1>
<event2>Event 2</event2>
<event3>Event 3</event3>
<event4>Event 4</event4>
<event5>Event 5</event5>
</reports>
</item>
</channel>
</rss>
РНР, process.php
<?php
$event1 = $_POST['event1'];
$event2 = $_POST['event2'];
$event3 = $_POST['event3'];
$event4 = $_POST['event4'];
$event5 = $_POST['event5'];
$xml = new DOMDocument();
$xml->load('file.xml');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$element = $xml->getElementsByTagName('description')->item(0);
if ($element->length > 0) {
$event1 = $element->getElementsByTagName('event1')->item(0);
$event2 = $element->getElementsByTagName('event2')->item(0);
$event3 = $element->getElementsByTagName('event3')->item(0);
$event4 = $element->getElementsByTagName('event4')->item(0);
$event5 = $element->getElementsByTagName('event5')->item(0);
$newItem = $xml->createElement('description');
$newItem->appendChild($xml->createElement('event1', $_POST['event1']));
$newItem->appendChild($xml->createElement('event2', $_POST['event2']));
$newItem->appendChild($xml->createElement('event3', $_POST['event3']));
$newItem->appendChild($xml->createElement('event4', $_POST['event4']));
$newItem->appendChild($xml->createElement('event5', $_POST['event5']));
$xml->getElementsByTagName('item')->item(0)->appendChild($newItem);
}
$xml->save('file.xml');
echo "Data has been written.";
?>
, и что именно проблема? вы не описываете это.Ознакомьтесь с разделом справки о том, как создать MCVE (http://stackoverflow.com/help/mcve) и добавить его в свой вопрос. Вы получите более быструю и лучшую помощь со стороны сообщества. – ochi
Мой администратор сервера обновил разрешения. Теперь он сохраняет, но сохраняет пустой файл, кроме первой строки XML. Я в тупик. –
@ochi, Не совсем уверен, что мне нужна помощь в создании MCVE, поскольку мой последующий комментарий отмечен ниже: «Мой администратор сервера обновил разрешения. Теперь он сохраняет, но он сохраняет пустой файл, кроме первой строки XML. Im stumped». Не уверен, как объяснить, что яснее, но я попробую. Файлы выше, после авторизации на сервер, только обновляют XML-файл с первой строкой и ничего больше. –