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
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
帝国cms目录结构分享
Jul 06 PHP
PHP错误机制知识汇总
Mar 24 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
PHP 类与构造函数解析
Feb 06 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 PHP
PHP实现页面静态化深入讲解
Mar 04 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
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
Python聚类算法之DBSACN实例分析
2015/11/20 Python
详解python3实现的web端json通信协议
2016/12/29 Python
详解Python如何生成词云的方法
2018/06/01 Python
Python docx库用法示例分析
2019/02/16 Python
提升Python程序性能的7个习惯
2019/04/14 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python标记语句块使用方法总结
2019/08/05 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
pytorch中的inference使用实例
2020/02/20 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
《开国大典》教学反思
2014/04/19 职场文书
日语专业求职信
2014/07/04 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
欢迎新生标语2015
2015/07/16 职场文书
电视新闻稿
2015/07/17 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang