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 相关文章推荐
Smarty+QUICKFORM小小演示
Feb 25 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php数组中包含中文的排序方法
Jun 03 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 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不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
Prototype Selector对象学习
2009/07/23 Javascript
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
Javascript调用C#代码
2011/01/17 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
javascript常用函数(1)
2015/11/04 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python小白垃圾回收机制入门
2020/06/09 Python
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
创业计划书六个要素
2013/12/26 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
七年级语文教学反思
2016/03/03 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python