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 相关文章推荐
linux php mysql数据库备份实现代码
Mar 10 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
完美的php分页类
Oct 24 PHP
php中上传文件的的解决方案
Sep 25 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
禁止直接访问php文件代码分享
May 05 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
如何在PHP中使用数组
Jun 09 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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二维数组的去重问题解析
2011/07/17 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
jquery提升性能最佳实践小结
2010/12/06 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
vue-axios使用详解
2017/05/10 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
Vue函数式组件-你值得拥有
2019/05/09 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
python处理PHP数组文本文件实例
2014/09/18 Python
Python中实现结构相似的函数调用方法
2015/03/10 Python
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
升职自我推荐信范文
2015/03/25 职场文书
工程移交协议书
2016/03/24 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers