2012-09-20 59 views
2

我试图创建一个表单,它可以让你编辑XML标记的内容。我现在有一个form.php的:通过HTML编辑XML表单(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='';,但它会删除文本并保持标记不变。

回答

3

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

我已经更新了我问题:) –

+0

看到我的帖子上面。 – svennergr

+0

最后一件事,我添加了另一个按钮来删除''零件,所以xml文件只有''在里面,但它只是清除文本,而不是标签,我改变了这个'$ data - > item-> name = $ _ POST ['welcome'];'this this'$ data ='';' –