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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
PHP 已经成熟
Dec 04 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
php简单smarty入门程序实例
Jun 11 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 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 分页原理分析,大家可以看看
2009/12/21 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python读写csv文件方法详细总结
2019/07/05 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
jupyter notebook 重装教程
2020/04/16 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
法律专业推荐信范文
2013/11/29 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis