PHP动态创建XML文档

一 代码

conn.php
<?php 
$id=mysql_connect("localhost","root","root") or die('数据库连接失败:' . mysql_error());
if(mysql_select_db("db_database26",$id))
  echo "";
  else
  echo ('数据库错误' . mysql_error());
mysql_query("set names gb2312");
?>
 
index.php
<a 
ref="rss.xml">查看rss.xml文件中的内容</a>
<?php 
include_once("conn/conn.php");
include_once("rss.php");
?>
 
rss.php
<?php 
$self=$_SERVER['HTTP_REFERER'];
$u=$_SERVER['HTTP_HOST'];
$url="http://"."$u";
$date_time=date("Y-m-d H:i:s");  
$dom = new DomDocument('1.0','gb2312');						//创建DOM对象
$object = $dom->createElement('rss');						//创建根节点rss
$dom->appendChild($object);									//将创建的根节点添加到dom对象中
	$type1 = $dom->createAttribute('xmlns:rdf');			//创建一个节点属性xmlns:rdf
	$object->appendChild($type1);							//将属性追加到rss根节点中
		$type1_value = $dom->createTextNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#'); //创建一个属性值
		$type1->appendChild($type1_value);								//将属性值赋给属性xmlns:rdf
	$type2 = $dom->createAttribute('xmlns:dc');							//创建一个节点属性xmlns:dc
	$object->appendChild($type2);							//将属性追加到rss根节点中
		$type2_value = $dom->createTextNode('http://purl.org/dc/elements/1.1/'); //创建一个属性值
		$type2->appendChild($type2_value);								//将属性值赋给属性xmlns:dc
	$type3 = $dom->createAttribute('xmlns:taxo');							//创建一个节点属性xmlns:taxo
	$object->appendChild($type3);							//将属性追加到rss根节点中
		$type3_value = $dom->createTextNode('http://purl.org/rss/1.0/modules/taxonomy/'); //创建一个属性值
		$type3->appendChild($type3_value);								//将属性值赋给属性xmlns:taxo
	$type4 = $dom->createAttribute('version');							//创建一个节点属性version
	$object->appendChild($type4);							//将属性追加到rss根节点中
		$type4_value = $dom->createTextNode('2.0'); 		//创建一个属性值
		$type4->appendChild($type4_value);					//将属性值赋给属性version
	$channel = $dom->createElement('channel');							//创建节点channel
	$object->appendChild($channel);									//将节点channel追加到根节点rss下
		$title = $dom->createElement('title');						//创建节点title
		$channel->appendChild($title);								//将节点追加到channel节点下
			$title_value = $dom->createTextNode(iconv('gb2312','utf-8','明日科技'));	//创建元素值
			$title->appendChild($title_value);						//将值赋给title节点
		$link = $dom->createElement('link');					//创建节点link
		$channel->appendChild($link);							//将节点追加到channel节点下
			$link_value = $dom->createTextNode(iconv('gb2312','utf-8','http://www.mingrisoft.com'));//创建元素值
			$link->appendChild($link_value);						//将值赋给link节点
		$description = $dom->createElement('description');					//创建节点description
		$channel->appendChild($description);						//将节点追加到channel节点下
			$description_value = $dom->createTextNode(iconv('gb2312','utf-8','明日科技'));	//创建元素值
			$description->appendChild($description_value);							//将值赋给description节点
		$dc_creator = $dom->createElement('dc:creator');					//创建节点dc:creator
		$channel->appendChild($dc_creator);						//将节点追加到channel节点中
			$dc_creator_value = $dom->createTextNode(iconv('gb2312','utf-8','http://www.mingrisoft.com'));//创建元素值
			$dc_creator->appendChild($dc_creator_value);						//将值赋给dc:creator节点
$sql=mysql_query("select * from tb_rss_database order by tb_rss_id desc");		//从数据库中读取数据
while($myrow=mysql_fetch_array($sql)){				//循环输出数据库中数据
		$item = $dom->createElement('item');			//创建节点item
		$object->appendChild($item);							//将item追加到channel节点下
			$item_title = $dom->createElement('title');					//创建title节点
			$item->appendChild($item_title);						//将节点追加到item节点下
			$item_link = $dom->createElement('link');					//创建link节点
			$item->appendChild($item_link);						//将节点追加到item节点下
			$item_description = $dom->createElement('description');		//创建description节点
			$item->appendChild($item_description);						//将节点追加到item节点中
			$item_pubDate = $dom->createElement('pubDate');				//创建节点pubDate
			$item->appendChild($item_pubDate);						//将节点追加到item节点下
				$title_value = $dom->createTextNode(iconv('gb2312','utf-8',"$myrow[tb_rss_subject]"));	//创建元素值
				$item_title->appendChild($title_value);						//将值赋给title节点
				$link_value = $dom->createTextNode(iconv('gb2312','utf-8',"$url/tm/sl/22/02/look_content.php?lmbs=$myrow[tb_rss_id]"));//创建元素值
				$item_link->appendChild($link_value);						//将值赋给link节点
				$description=substr($myrow[tb_rss_content],0,80);			//截取该字段中的前80个字符
				$description_value = $dom->createTextNode(iconv('gb2312','utf-8',"$description"));//创建元素值
				$item_description->appendChild($description_value);			//将值赋给description节点
				$pubDate_value = $dom->createTextNode(iconv('gb2312','utf-8',"$date_time"));//创建元素值
				$item_pubDate->appendChild($pubDate_value);						//将值赋给pubDate节点
}
$modi = $dom->saveXML();					//生成xml文档
file_put_contents('Rss.xml',$modi);			/*  将对象保存到Rss.xml文档中  */
?>
 
二 运行结果

 

猜你喜欢

转载自cakin24.iteye.com/blog/2378829