每次提交表单时将项添加到xml中-xmlwriter PHP

每次提交表单时将项添加到xml中-xmlwriter PHP,php,html,forms,xmlwriter,Php,Html,Forms,Xmlwriter,当将post值提交到php文件时,我有一个html表单。然后将这些值读入xmlwriter,如下所示 <?php $pastor= $_POST["Speaker"]; $title= $_POST["Title"]; $link= $_POST["podcasturl"]; $download= $_POST["Download"]; $podcastid= $_POST["Podcastid"]; $pubdate= $_POST ["Date"]; $xml = new XmlW

当将post值提交到php文件时,我有一个html表单。然后将这些值读入xmlwriter,如下所示

<?php 
$pastor= $_POST["Speaker"];
$title= $_POST["Title"];
$link= $_POST["podcasturl"];
$download= $_POST["Download"];
$podcastid= $_POST["Podcastid"];
$pubdate= $_POST ["Date"];

$xml = new XmlWriter();
$xml->openURI('podcast.xml'); 
$xml->formatOutput = true;
$xml->startDocument('1.0'); 
$xml->setIndent(4); 
$xml->startElement("podcast");
$xml->writeElement('pastor', $pastor);
$xml->writeElement('title', $title);
$xml->writeElement('link', $link);
$xml->writeElement('download', $download);
$xml->writeElement('podcastid', $podcastid);
$xml->writeElement('pubdate', $pubdate);
$xml->endElement(); 
$xml->endElement();  
$xml->endDocument();
?>
openURI('podcast.xml'); $xml->formatOutput=true; $xml->startDocument('1.0'); $xml->setIndent(4); $xml->startElement(“播客”); $xml->writeElement('pastor',$pastor); $xml->writeElement('title',$title); $xml->writeElement('link',$link); $xml->writeElement('download',$download); $xml->writeElement('podcastid',$podcastid); $xml->writeElement($pubdate',$pubdate); $xml->endElement(); $xml->endElement(); $xml->endDocument(); ?> 整个系统运行良好。它根据表单创建我需要的xml。我不明白的是,如何让它在每次提交表单时向xml中添加一个新项,而不是每次都覆盖相同的条目

谢谢

你应该考虑使用。code>XMLWriter不用于修改现有xml。从

此扩展代表一个writer,它提供了一种非缓存的、仅转发的方式来生成包含XML数据的流或文件

使用
SimpleXML
可以执行以下操作:

$xml = simplexml_load_file("podcast.xml");
$podcast = $xml->addChild("podcast");
$podcast->addChild("pastor", $pastor);
$podcast->addChild("title", $title);
$podcast->addChild("link", $link);
$podcast->addChild("download", $download);
$podcast->addChild("podcastid", $podcastid);
$podcast->addChild("pubdate", $pubdate);

$dom = new DOMDocument("1.0");
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$dom->save("podcast.xml");
为了使本例正常工作,应该将
podcast
xml元素包装在一个元素中(见下文),并且“podcast.xml”文件应该已经存在。尽管后者可以通过装载前的检查来克服

<?xml version="1.0"?>
<podcasts>
  <podcast>...</podcast>
  <podcast>...</podcast>
<podcasts>

...
...

您能建议如何将新数据附加到XML文件(如sitemap.XML)中吗?