0
我是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>
的PHP,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 2015-04-01 19:50:22
我的服務器管理員更新了權限。現在它可以保存,但保存除第一條XML行之外的空文件。我難倒了。 – 2015-04-01 20:10:44
@ochi,不知道我在創建一個MCVE時需要幫助,因爲我的後續評論指出:「我的服務器管理員更新了權限,現在可以保存,但它保存了一個空文件,除了第一條XML線以外,我陷入了困境。不知道如何解釋清楚,但我會嘗試。上面的文件一旦被授權寫入服務器,只會用第一行更新XML文件,而不是其他任何東西。 – 2015-04-08 19:27:15