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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
php实现加减法验证码代码
Feb 14 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
php使用百度ping服务代码实例
Jun 19 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
javascript 写类方式之三
2009/07/05 Javascript
js 幻灯片的实现
2011/12/06 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
通过实例了解python property属性
2019/11/01 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
一些Solaris面试题
2015/12/22 面试题
社团文化节策划书
2014/02/01 职场文书
将相和教学反思
2014/02/04 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
英语专业自荐书
2014/06/13 职场文书
元宵节寄语大全
2015/02/27 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
Django migrate报错的解决方案
2021/05/20 Python
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
Java使用jmeter进行压力测试
2021/07/09 Java/Android
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle