2

我正在尝试创建一个表单,让您可以编辑 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='';但它会删除文本并保持标签不变。

4

1 回答 1

4

您可以使用 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);

编辑:对于评论中的问题:

<?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>
于 2012-09-20T14:01:05.370 回答