每次提交表单时将项添加到xml中-xmlwriter PHP
当将post值提交到php文件时,我有一个html表单。然后将这些值读入xmlwriter,如下所示每次提交表单时将项添加到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
<?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)中吗?