Yii2 輸出xml格式數(shù)據(jù)的方法
php中對xml的處理,雖然說實(shí)際開發(fā)中目前用的少了,但是難免會(huì)用到,用到的時(shí)候呢,總結(jié)起來還是稍稍有那么一丁點(diǎn)的麻煩。
我們來看看yii2中是怎么對xml進(jìn)行處理的。會(huì)超乎你想象的簡單哦。
我們以輸出xml格式的數(shù)據(jù)為例。
既然是輸出,必然就涉及到web請求與響應(yīng)了,不熟悉的可以先去了解下HTTP協(xié)議。
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格式數(shù)據(jù)
public function actionTest () {
\Yii::$app->response->format = \yii\web\Response::FORMAT_XML;
return [
'message' => 'hello world',
'code' => 100,
];
}
這里我們指定了reponse響應(yīng)格式 FORMAT_XML,然后訪問這個(gè)test方法就可以看到頁面上輸出了xml類型的數(shù)據(jù)
<response> <message>hello world</message> <code>100</code> </response>
上面提到的方式未免有點(diǎn)麻煩,麻煩在配置多項(xiàng)的時(shí)候就不是那么方便了,我們來自己創(chuàng)建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', //根節(jié)點(diǎn)
'itemTag' => 'url', //單元
],
],
'data' => [ //要輸出的數(shù)據(jù)
[
'loc' => 'http://********',
],
],
]);
}
為了方便接下來的說明,上面一并做了配置,可以看到我們配置了響應(yīng)的格式format,單獨(dú)做了些配置,包括配置根節(jié)點(diǎn)rootTag,單元itemTag以及數(shù)據(jù)類型。有同學(xué)注意到了,這里其實(shí)我們很簡單的就實(shí)現(xiàn)了一個(gè)站點(diǎn)地圖的xml格式輸出。是的,就是這么簡單。
- 解析yii數(shù)據(jù)庫的增刪查改
- Yii實(shí)現(xiàn)MySQL多數(shù)據(jù)庫和讀寫分離實(shí)例分析
- Yii2.0高級框架數(shù)據(jù)庫增刪改查的一些操作
- Yii實(shí)現(xiàn)多數(shù)據(jù)庫主從讀寫分離的方法
- YII2數(shù)據(jù)庫查詢實(shí)踐
- PHP的Yii框架中使用數(shù)據(jù)庫的配置和SQL操作實(shí)例教程
- Yii2如何批量添加數(shù)據(jù)
- Yii2 GridView實(shí)現(xiàn)列表頁直接修改數(shù)據(jù)的方法
- yii數(shù)據(jù)庫的查詢方法
- Yii學(xué)習(xí)總結(jié)之?dāng)?shù)據(jù)訪問對象 (DAO)
- Yii2框架數(shù)據(jù)庫簡單的增刪改查語法小結(jié)
- Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法
- Yii遍歷行下每列數(shù)據(jù)的方法
相關(guān)文章
百度實(shí)時(shí)推送api接口應(yīng)用示例
這篇文章主要介紹了百度實(shí)時(shí)推送api接口應(yīng)用示例,非常的實(shí)用,有需要的朋友可以參考下2014-10-10
阿里云Win2016安裝Apache和PHP環(huán)境圖文教程
本文給大家講述的是在阿里云的WindowsServer2016上部署Apache和PHP的web環(huán)境,步驟非常細(xì)致,強(qiáng)烈推薦給大家2018-03-03
thinkPHP3.2使用RBAC實(shí)現(xiàn)權(quán)限管理的實(shí)現(xiàn)
這篇文章主要介紹了thinkPHP3.2使用RBAC實(shí)現(xiàn)權(quán)限管理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
PHP實(shí)現(xiàn)數(shù)據(jù)庫的增刪查改功能及完整代碼
這篇文章主要介紹了PHP實(shí)現(xiàn)數(shù)據(jù)庫的增刪查改功能及完整代碼,需要的朋友可以參考下2018-04-04
數(shù)組任意位置插入元素,刪除特定元素的實(shí)例
下面小編就為大家?guī)硪黄獢?shù)組任意位置插入元素,刪除特定元素的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
基于ThinkPHP5.0實(shí)現(xiàn)圖片上傳插件
thinkphp5.0 圖片上傳插件可預(yù)覽裁剪圖片和保存原圖片,執(zhí)行裁剪圖片后會(huì)刪除 裁剪的原圖片目錄,以便減少空間。具體實(shí)現(xiàn)代碼大家參考下本文2017-09-09

