alphawolf21 Posted June 24, 2012 Share Posted June 24, 2012 <?php $doc = new DOMDocument(); $doc->load("rss/updates.xml"); $doc->formatOutput = true; include 'functions.php'; connect(); query("INSERT INTO updates(post,userid,subject,posted)VALUES('".addslashes($_POST["post"])."','".$_COOKIE["id"]."','".addslashes($_POST["subject"])."',CURRENT_TIMESTAMP)"); $n = mysql_insert_id(); loguser($_COOKIE["id"],"added an update to the site."); $update = sql("SELECT subject,post FROM updates WHERE id = '".$n."'"); $rss = $doc->createElement("rss"); $version = $doc->createAttribute("version"); $version->value = "2.0"; $nameSpace = $doc->createAttribute("xml:ns"); $nameSpace->value = "http://www.w3.org/2005/Atom"; $rss->appendChild($version); $rss->appendChild($nameSpace); $channel = $doc->createElement("channel"); $item = $doc->createElement("item"); $title = $doc->createElement("title"); $title->appendChild( $doc->createTextNode(stripslashes($update["subject"])) ); $link = $doc->createElement("link"); $link->appendChild( $doc->createTextNode("http://www.dreamspand.com/?act=updates") ); $post = $doc->createElement("description"); $post->appendChild( $doc->createTextNode(substr(stripslashes($update["post"]),0,80)."..") ); $item->appendChild($link); $item->appendChild($title); $item->appendChild($post); $channel->appendChild($item); $rss->appendChild($channel); $doc->appendChild($rss); $doc->saveXML(); $doc->save("rss/updates.xml"); echo "location.href='?act=updates';"; ?> This function writes and saves to an XML file, with one problem. It creates the RSS and channel elements each time I post an update into my database. How do I get it to just append the update elements to these tags without creating more? As in, how do I write within the rss/channel tags alone, and not just keep adding more of them to the file? My XML file looks like this: <?xml version="1.0"?> <rss version="2.0" xml:ns="http://www.w3.org/2005/Atom"> <channel> <item> <link>http://www.dreamspand.com/?act=updates</link> <title>t5</title> <description>f5..</description> </item> </channel> </rss> <rss version="2.0" xml:ns="http://www.w3.org/2005/Atom"> <channel> <item> <link>http://www.dreamspand.com/?act=updates</link> <title>t6</title> <description>f6..</description> </item> </channel> </rss> I want it to look like this: <?xml version="1.0"?> <rss version="2.0" xml:ns="http://www.w3.org/2005/Atom"> <channel> <item> <link>http://www.dreamspand.com/?act=updates</link> <title>t5</title> <description>f5..</description> </item> <item> <link>http://www.dreamspand.com/?act=updates</link> <title>t6</title> <description>f6..</description> </item> </channel> </rss> So if anyone has any ideas, I'd really appreciate it please. Otherwise this works fine, I'm just kinda lost. Link to comment https://forums.phpfreaks.com/topic/264691-writing-to-xml-file-help/ Share on other sites More sharing options...
Skewled Posted June 25, 2012 Share Posted June 25, 2012 $rss = $doc->createElement("rss"); $version = $doc->createAttribute("version"); $version->value = "2.0"; $nameSpace = $doc->createAttribute("xml:ns"); $nameSpace->value = "http://www.w3.org/2005/Atom"; Above the values are assigned, then added to the XML file below: $doc->appendChild($rss); Link to comment https://forums.phpfreaks.com/topic/264691-writing-to-xml-file-help/#findComment-1356726 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.