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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
js处理包含中文的字符串实例
2017/10/11 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
Python文件及目录操作实例详解
2015/06/04 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
python中import reload __import__的区别详解
2017/10/16 Python
详解如何使用Python编写vim插件
2017/11/28 Python
Python subprocess库的使用详解
2018/10/26 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
中学生团员自我评价分享
2013/12/07 职场文书
保安自我鉴定范文
2013/12/08 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
现货白银电话营销话术
2015/05/29 职场文书
三国演义读书笔记
2015/06/25 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript