• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
蓝胖子685 显示全部楼层 发表于 2021-10-25 19:36:29 |阅读模式 打印 上一主题 下一主题
本文实例报告了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. }
  65. $modi = $dom->saveXML();         //生成xml文档
  66. file_put_contents('Rss.xml',$modi);     /* 将对象保存到Rss.xml文档中 */
  67. ?>
复制代码
二. 运行结果

PS:这里再为各人提供几款关于xml使用的在线工具供各人参考使用:
在线XML/JSON相互转换工具:
http://tools.jb51.net/code/xmljson
在线格式化XML/在线压缩XML
http://tools.jb51.net/code/xmlformat
XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress
XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多关于PHP相干内容感爱好的读者可查看本站专题:《PHP针对XML文件使用本领总结》、《PHP数组(Array)使用本领大全》、《php字符串(string)用法总结》、《php面向对象步伐筹划入门教程》、《php+mysql数据库使用入门教程》及《php常见数据库使用本领汇总》
盼望本文所述对各人PHP步伐筹划有所资助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作