作者:白狼出處:http://www.manks.top/yii2_xml_response.html.html本文版權歸作者,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
php中對xml的處理,雖然說實際開發中目前用的少了,但是難免會用到,用到的時候呢,總結起來還是稍稍有那麼一丁點的麻煩。
我們來看看yii2中是怎麼對xml進行處理的。會超乎你想像的簡單。
我們以輸出xml格式的資料為例。
既然是輸出,必然就涉及到web請求與回應了,不熟悉的可以先去了解下HTTP協定。
yii2中支援以下幾種返回格式,均可自訂配置。
HTML: implemented by yiiwebHtmlResponseFormatter.
XML: implemented by yiiwebXmlResponseFormatter.
<span>public</span><span>function</span><span> actionTest () { \Yii</span>::<span>$app</span>->response->format = \yii\web\Response::<span>FORMAT_XML; </span><span>return</span><span> [ </span>'message' => 'hello world', 'code' => 100,<span> ]; }</span>這裡我們指定了reponse回應格式FORMAT_XML,然後存取這個test方法就可以看到頁面上輸出了xml類型的資料
<span><</span><span>response</span><span>></span><span><</span><span>message</span><span>></span>hello world<span></</span><span>message</span><span>></span><span><</span><span>code</span><span>></span>100<span></</span><span>code</span><span>></span><span></</span><span>response</span><span>></span>
提到的方式未免有點麻煩,麻煩在配置多項的時候就不是那麼方便了,我們來自己創建reponse對象試一試
<span>public</span><span>function</span><span> actionTest () { </span><span>return</span> \Yii::<span>createObject([ </span>'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_XML, 'formatters' =><span> [ \yii\web\Response</span>::FORMAT_XML =><span> [ </span>'class' => 'yii\web\XmlResponseFormatter', 'rootTag' => 'urlset', <span>//</span><span>根节点 </span> 'itemTag' => 'url', <span>//</span><span>单元 </span> ],<span> ]</span>, 'data' => [ <span>//</span><span>要输出的数据 </span><span> [ </span>'loc' => 'http://********',<span> ]</span>,<span> ]</span>,<span> ]); }</span>
為了方便接下來的說明,上面一併做了配置,可以看到我們配置了回應的格式format,單獨做了些配置,包括配置根節點rootTag,單元itemTag以及資料類型。有同學注意到了,這裡其實我們很簡單的就實作了一個網站地圖的xml格式輸出。是的,就是這麼簡單。
以上就介紹了yii2 輸出xml格式數據,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。