Yii2 输出xml格式数据的方法


Posted in PHP onMay 03, 2016

php中对xml的处理,虽然说实际开发中目前用的少了,但是难免会用到,用到的时候呢,总结起来还是稍稍有那么一丁点的麻烦。

我们来看看yii2中是怎么对xml进行处理的。会超乎你想象的简单哦。

我们以输出xml格式的数据为例。

既然是输出,必然就涉及到web请求与响应了,不熟悉的可以先去了解下HTTP协议。

yii2中支持以下几种返回格式,均可自定义配置。

HTML: implemented by yii\web\HtmlResponseFormatter.
XML: implemented by yii\web\XmlResponseFormatter.
JSON: implemented by yii\web\JsonResponseFormatter.
JSONP: implemented by yii\web\JsonResponseFormatter.
RAW: use this format if you want to send the response directly without applying any formatting.

我们就是冲着XML来的。

先来看一种简单的输出xml格式数据

public function actionTest () { 
\Yii::$app->response->format = \yii\web\Response::FORMAT_XML; 
return [ 
'message' => 'hello world', 
'code' => 100, 
]; 
}

这里我们指定了reponse响应格式 FORMAT_XML,然后访问这个test方法就可以看到页面上输出了xml类型的数据

<response> 
<message>hello world</message> 
<code>100</code> 
</response>

上面提到的方式未免有点麻烦,麻烦在配置多项的时候就不是那么方便了,我们来自己创建reponse对象试一试

public function actionTest () { 
return \Yii::createObject([ 
'class' => 'yii\web\Response', 
'format' => \yii\web\Response::FORMAT_XML, 
'formatters' => [ 
\yii\web\Response::FORMAT_XML => [ 
'class' => 'yii\web\XmlResponseFormatter', 
'rootTag' => 'urlset', //根节点 
'itemTag' => 'url', //单元 
], 
], 
'data' => [ //要输出的数据 
[ 
'loc' => 'http://********', 
], 
], 
]); 
}

为了方便接下来的说明,上面一并做了配置,可以看到我们配置了响应的格式format,单独做了些配置,包括配置根节点rootTag,单元itemTag以及数据类型。有同学注意到了,这里其实我们很简单的就实现了一个站点地图的xml格式输出。是的,就是这么简单。

PHP 相关文章推荐
多文件上载系统完整版
Oct 09 PHP
轻松修复Discuz!数据库
May 03 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP通用检测函数集合
Feb 08 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
php面向对象值单例模式
May 03 #PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 #PHP
Linux环境下php实现给网站截图的方法
May 03 #PHP
PHPExcel笔记, mpdf导出
May 03 #PHP
PHP实现的进度条效果详解
May 03 #PHP
php实现按天数、星期、月份查询的搜索框
May 02 #PHP
php支持断点续传、分块下载的类
May 02 #PHP
You might like
基于mysql的论坛(2)
2006/10/09 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
php取出数组单个值的方法
2018/03/12 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
js跳转页面方法总结
2014/01/29 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
HTML5未来发展趋势
2016/02/01 HTML / CSS
WiFi云数码相框:Nixplay
2018/07/05 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
优秀教师主要事迹
2014/02/01 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
合理化建议书范文
2015/09/14 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
导游词书写之黄山
2019/08/06 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js