我们将从代码开始:
PHP:
<?php
$newJaCourse = $_POST["ja-new-course"];
$newJaSide = $_POST["ja-new-side"];
$newEnCourse = $_POST["en-new-course"];
$newEnSide = $_POST["en-new-side"];
$doc = new DOMDocument('1.0','utf-8');
$doc->formatOutput=true;
$doc->preserveWhiteSpace=false;
echo $doc->load("../../xml/daily_lunch.xml") . "Loaded <br />";
$japanese = $doc->getElementsByTagName("japanese")->item(0);
$jacourse = $japanese->getElementsByTagName("course")->item(0);
$jaside = $japanese->getElementsByTagName("side")->item(0);
$english = $doc->getElementsByTagName("english")->item(0);
$encourse = $english->getElementsByTagName("course")->item(0);
$enside = $english->getElementsByTagName("side")->item(0);
$jacourse->nodeValue = $newJaCourse;
$jaside->nodeValue = $newJaSide;
$encourse->nodeValue = $newEnCourse;
$enside->nodeValue = $newEnSide;
$japanese->replaceChild($jacourse,$jacourse);
$japanese->replaceChild($jaside,$jaside);
$english->replaceChild($encourse,$encourse);
$english->replaceChild($enside,$enside);
echo $doc->save("../../xml/daily_lunch.xml") . "Done!";
?>
我精美的HTML表单:
<h4>Change Today's Lunch Menu:</h4>
<form method="post" action="scripts/lunchupdate.php" name="changelunch">
<table>
<tr>
<th>Japanese: Course</th>
<td><input type="textbox" name="ja-new-course" /></td>
</tr>
<tr>
<th>Japanese: Side</th>
<td><input type="textbox" name="ja-new-side" /></td>
</tr>
<tr>
<th>English: Course</th>
<td><input type="textbox" name="en-new-course" /></td>
</tr>
<tr>
<th>English: Side</th>
<td><input type="textbox" name="en-new-side" /></td>
</tr>
</table>
<a href="javascript:" onclick="writeNewLunch()">Set Menu</a> |
<a href="javascript:" onclick="document.changelunch.reset()">Reset Input</a>
</form>
我当前的XML:
<?xml version="1.0" encoding="UTF-8"?>
<lunch featuredisabled="false">
<japanese>
<course>
えびトマトクリームパスタ
</course>
<side>
シーザーサラダ
</side>
</japanese>
<english>
<course>
Shrimp and Tomato Cream Pasta
</course>
<side>
Ceasar Side Salad
</side>
</english>
</lunch>
虽然您可以说明目的,但它是更改XML文件中的项目。目标是为双语餐厅提供每日午餐更新服务。我精彩的DOMDocument-&gt; save(文件名)虽然没有做杰克。
没有返回任何内容,我的所有变量和更改都会回显。我正在运行PHP5。我查看了phpinfo()并找到了所有XML要求的配置,打开并且没有完成工作。
此脚本输出的唯一内容是:
Loaded
Done!
答案 0 :(得分:5)
缺少文件名。根据{{3}}你应该有
$doc->save('myfile.xml');
您是否有权写入文件夹?
答案 1 :(得分:3)
我认为$ doc-&gt; save()需要传递文件名。所以用$ doc-&gt; save(“../../ xml / daily_lunch.xml”)替换$ doc-save()