Yii2 输出xml格式数据的方法

5年以前  |  阅读数:230 次  |  编程语言:PHP 

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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
文件下载
获取IMEI
贪吃蛇
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例