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
MYSQL环境变量设置方法
Jan 15 PHP
PHP中cookies使用指南
Mar 16 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
解析PHP跨站刷票的实现代码
Jun 18 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
PHP使用SOAP调用API操作示例
Dec 25 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
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python 常用的安装Module方式汇总
2017/05/06 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
小区门卫的岗位职责
2014/09/26 职场文书
保送生自荐信范文
2015/03/26 职场文书
运动会加油稿30字
2015/07/21 职场文书
python如何正确使用yield
2021/05/21 Python