通过HTML表单编辑XML(PHP)(Edit XML via HTML Form (PHP))

2019-09-22 16:26发布

我试图创建一个表单,可以让您编辑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文件中的值是以前..

UPDATE

该表的工作方式了,但我添加了一个复位按钮,我需要它来清除xml文件,因此只有在<welcome>标签。 我已经改变了$data->item->name=$_POST['welcome'];$data=''; 但它删除文本,并保持标签依然。

Answer 1:

你可以用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>


文章来源: Edit XML via HTML Form (PHP)
标签: php xml forms