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判断变量类型常用方法
Apr 24 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
php过滤XSS攻击的函数
Nov 12 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
php获取QQ头像并显示的方法
Dec 23 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
codeigniter实现get分页的方法
Jul 10 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 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中的PHP_EOL换行符详细解析
2013/10/26 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
实例讲解PHP表单处理
2019/02/15 PHP
10个实用的脚本代码工具
2010/05/04 Javascript
ExtJS 入门
2010/10/29 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
python引用DLL文件的方法
2015/05/11 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
python下载图片实现方法(超简单)
2017/07/21 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python的pip有什么用
2020/06/17 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
好人好事新闻稿
2015/07/17 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android