当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP实现动态创建XML文档的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-06 09:54:58 浏览: 评论:0 

这篇文章主要介绍了PHP实现动态创建XML文档的方法,结合实例形式分析了php针对xml格式数据的构建及文件读写相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现动态创建XML文档的方法,分享给大家供大家参考,具体如下:

一. 代码

conn.php

  1. <?php 
  2. $id=mysql_connect("localhost","root","root"or die('数据库连接失败:' . mysql_error()); 
  3. if(mysql_select_db("db_database26",$id)) 
  4.  echo ""
  5.  else 
  6.  echo ('数据库错误' . mysql_error()); 
  7. mysql_query("set names gb2312"); 
  8. ?> 

index.php

  1. <a 
  2. ref="rss.xml">查看rss.xml文件中的内容</a> 
  3. <?php 
  4. include_once("conn/conn.php"); 
  5. include_once("rss.php"); 
  6. ?> 

rss.php

  1. <?php 
  2. $self=$_SERVER['HTTP_REFERER']; 
  3. $u=$_SERVER['HTTP_HOST']; 
  4. $url="http://"."$u"
  5. $date_time=date("Y-m-d H:i:s"); 
  6. $dom = new DomDocument('1.0','gb2312');           //创建DOM对象 
  7. $object = $dom->createElement('rss');            //创建根节点rss 
  8. $dom->appendChild($object);                 //将创建的根节点添加到dom对象中 
  9.   $type1 = $dom->createAttribute('xmlns:rdf');     //创建一个节点属性xmlns:rdf 
  10.   $object->appendChild($type1);              //将属性追加到rss根节点中 
  11.     $type1_value = $dom->createTextNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#'); //创建一个属性值 
  12.     $type1->appendChild($type1_value);                //将属性值赋给属性xmlns:rdf 
  13.   $type2 = $dom->createAttribute('xmlns:dc');             //创建一个节点属性xmlns:dc 
  14.   $object->appendChild($type2);              //将属性追加到rss根节点中 
  15.     $type2_value = $dom->createTextNode('http://purl.org/dc/elements/1.1/'); //创建一个属性值 
  16.     $type2->appendChild($type2_value);                //将属性值赋给属性xmlns:dc 
  17.   $type3 = $dom->createAttribute('xmlns:taxo');              //创建一个节点属性xmlns:taxo 
  18.   $object->appendChild($type3);              //将属性追加到rss根节点中 
  19.     $type3_value = $dom->createTextNode('http://purl.org/rss/1.0/modules/taxonomy/'); //创建一个属性值 
  20.     $type3->appendChild($type3_value);                //将属性值赋给属性xmlns:taxo 
  21.   $type4 = $dom->createAttribute('version');              //创建一个节点属性version 
  22.   $object->appendChild($type4);              //将属性追加到rss根节点中 
  23.     $type4_value = $dom->createTextNode('2.0');   //创建一个属性值 
  24.     $type4->appendChild($type4_value);          //将属性值赋给属性version 
  25.   $channel = $dom->createElement('channel');              //创建节点channel 
  26.   $object->appendChild($channel);                 //将节点channel追加到根节点rss下 
  27.     $title = $dom->createElement('title');            //创建节点title 
  28.     $channel->appendChild($title);                //将节点追加到channel节点下 
  29.       $title_value = $dom->createTextNode(iconv('gb2312','utf-8','明日科技')); //创建元素值 
  30.       $title->appendChild($title_value);            //将值赋给title节点 
  31.     $link = $dom->createElement('link');         //创建节点link 
  32.     $channel->appendChild($link);              //将节点追加到channel节点下 
  33.       $link_value = $dom->createTextNode(iconv('gb2312','utf-8','http://www.mingrisoft.com'));//创建元素值 
  34.       $link->appendChild($link_value);           //将值赋给link节点 
  35.     $description = $dom->createElement('description');          //创建节点description 
  36.     $channel->appendChild($description);           //将节点追加到channel节点下 
  37.       $description_value = $dom->createTextNode(iconv('gb2312','utf-8','明日科技'));  //创建元素值 
  38.       $description->appendChild($description_value);              //将值赋给description节点 
  39.     $dc_creator = $dom->createElement('dc:creator');         //创建节点dc:creator 
  40.     $channel->appendChild($dc_creator);           //将节点追加到channel节点中 
  41.       $dc_creator_value = $dom->createTextNode(iconv('gb2312','utf-8','http://www.mingrisoft.com'));//创建元素值 
  42.       $dc_creator->appendChild($dc_creator_value);           //将值赋给dc:creator节点 
  43. $sql=mysql_query("select * from tb_rss_database order by tb_rss_id desc");   //从数据库中读取数据 
  44. while($myrow=mysql_fetch_array($sql)){       //循环输出数据库中数据 
  45.     $item = $dom->createElement('item');     //创建节点item 
  46.     $object->appendChild($item);             //将item追加到channel节点下 
  47.       $item_title = $dom->createElement('title');         //创建title节点 
  48.       $item->appendChild($item_title);           //将节点追加到item节点下 
  49.       $item_link = $dom->createElement('link');          //创建link节点 
  50.       $item->appendChild($item_link);           //将节点追加到item节点下 
  51.       $item_description = $dom->createElement('description');   //创建description节点 
  52.       $item->appendChild($item_description);            //将节点追加到item节点中 
  53.       $item_pubDate = $dom->createElement('pubDate');       //创建节点pubDate 
  54.       $item->appendChild($item_pubDate);            //将节点追加到item节点下 
  55.         $title_value = $dom->createTextNode(iconv('gb2312','utf-8',"$myrow[tb_rss_subject]"));  //创建元素值 
  56.         $item_title->appendChild($title_value);           //将值赋给title节点 
  57.         $link_value = $dom->createTextNode(iconv('gb2312','utf-8',"$url/tm/sl/22/02/look_content.php?lmbs=$myrow[tb_rss_id]"));//创建元素值 
  58.         $item_link->appendChild($link_value);            //将值赋给link节点 
  59.         $description=substr($myrow[tb_rss_content],0,80);      //截取该字段中的前80个字符 
  60.         $description_value = $dom->createTextNode(iconv('gb2312','utf-8',"$description"));//创建元素值 
  61.         $item_description->appendChild($description_value);     //将值赋给description节点 
  62.         $pubDate_value = $dom->createTextNode(iconv('gb2312','utf-8',"$date_time"));//创建元素值 
  63.         $item_pubDate->appendChild($pubDate_value);           //将值赋给pubDate节点 
  64. $modi = $dom->saveXML();         //生成xml文档 
  65. file_put_contents('Rss.xml',$modi);     /* 将对象保存到Rss.xml文档中 */ 
  66. ?>

Tags: PHP动态创建XML

分享到: