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 相关文章推荐
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
学习php笔记 字符串处理
Oct 19 PHP
php编写一个简单的路由类
Apr 13 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
php中try catch捕获异常实例详解
Aug 06 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获取淘宝分类id示例
2014/01/16 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
深入理解PHP中的global
2014/08/19 PHP
php实现的操作excel类详解
2016/01/15 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
Javascript里使用Dom操作Xml
2007/01/22 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
Python+django实现文件上传
2016/01/17 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python sorted函数的小练习及解答
2019/09/18 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
数控技术学生的自我评价
2014/02/15 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
单位婚育证明范本
2014/11/21 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书