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


Posted in PHP onMarch 30, 2018

本文实例讲述了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文档中 */
?>

二. 运行结果

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

PHP 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
Oct 13 PHP
php生成图形(Libchart)实例
Nov 06 PHP
php堆排序(heapsort)练习
Nov 13 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
解决Laravel5.5下的toArray问题
Oct 15 PHP
php实现微信模板消息推送
Mar 30 #PHP
Mac系统下安装PHP Xdebug
Mar 30 #PHP
php实现websocket实时消息推送
Mar 30 #PHP
总结PHP内存释放以及垃圾回收
Mar 29 #PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 #PHP
PHP使用文件锁解决高并发问题示例
Mar 29 #PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 #PHP
You might like
PHP实现单例模式最安全的做法
2014/06/13 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
一段实时更新的时间代码
2006/07/07 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
django中静态文件配置static的方法
2018/05/20 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
pygame实现飞机大战
2020/03/11 Python
python deque模块简单使用代码实例
2020/03/12 Python
python实现一个猜拳游戏
2020/04/05 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
经理管理专业毕业自荐书范文
2014/02/12 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
森林防火标语
2014/06/23 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2016年情人节广告语
2016/01/28 职场文书
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android