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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
PHP 作用域解析运算符(::)
Jul 27 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
ThinkPHP视图查询详解
Jun 30 PHP
php实现复制移动文件的方法
Jul 29 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 PHP
PHP环形链表实现方法示例
Sep 15 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
Jan 27 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
Feb 27 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 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
模仿OSO的论坛(三)
2006/10/09 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP实现文件下载详解
2014/11/27 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
$()JS小技巧
2007/07/21 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python常用列表数据结构小结
2014/08/06 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
学校经典推荐信
2013/10/30 职场文书
大学生毕业自我评价范文分享
2013/11/07 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
销售团队口号大全
2014/06/06 职场文书
人生遥控器观后感
2015/06/11 职场文书
2015年车间管理工作总结
2015/07/23 职场文书