本文主要介紹php中如何將json格式的數據轉換成xml格式數據,通過本文的介紹,您可以了解php中常用的json轉xml的方法以及其實現的代碼。
在實際開發中,我們常常需要將json格式的數據轉換成xml格式的,因為部分服務商提供的API返回的是xml格式的數據,如何將API返回的xml格式數據轉換成我們需要的json格式數據,這時候我們需要json轉xml。
接下來我將向大家分享幾個php中實現json轉xml格式的方法,方便大家在實際開發中的使用。
使用Json_decode和simplexml_import_dom函數實現json轉xml:
<?php // 定義json格式的字符串 $jsonStr = '{"name":"xiaoming","age":18,"sexy":"male"}'; // 將json格式的字符串轉換成對象 $obj = json_decode($jsonStr); // 創建一個空的xml文檔對象 $xml = new DomDocument(); // 建立根節點 $root = $xml->createElement("root"); $root = $xml->appendChild($root); // 循環$obj對象 foreach($obj as $k =>$v) { $item = $xml->createElement($k, $v); $root->appendChild($item); } // 格式化xml輸出 echo $xml->saveXML(); ?>
運行上述代碼,將輸出如下的xml格式的字符串:
<?xml version="1.0"?><root><name>xiaoming</name><age>18</age><sexy>male</sexy></root>
使用Xmlwriter類實現json轉xml格式:
<?php // 定義json格式的字符串 $jsonStr = '{"name":"xiaoming","age":18,"sexy":"male"}'; // 將json格式的字符串轉換成對象 $obj = json_decode($jsonStr); // 創建一個XmlWriter對象 $xml = new XMLWriter(); $xml->openUri('php://output'); $xml->setIndent(true); //啟動縮進 $xml->startDocument('1.0','UTF-8'); //聲明xml版本和編碼格式 $xml->startElement('root'); // 循環$obj對象 foreach($obj as $k =>$v) { $xml->writeElement($k, $v); } $xml->endElement(); //關閉節點 $xml->endDocument(); //結束xml文檔 // flush輸出xml $outputXml = $xml->outputMemory(); echo $outputXml; ?>
運行上述代碼,將輸出如下的xml格式的字符串:
<?xml version="1.0" encoding="UTF-8"?><root><name>xiaoming</name><age>18</age><sexy>male</sexy></root>
使用SimpleXMLElement對象實現json轉xml格式:
<?php // 定義json格式的字符串 $jsonStr = '{"name":"xiaoming","age":18,"sexy":"male"}'; // 將json格式的字符串轉換成對象 $obj = json_decode($jsonStr); // 使用SimpleXMLElement對象實現xml格式化 $xml = new SimpleXMLElement(''); foreach($obj as $k=>$v) { $xml->$k = $v; } // 格式化輸出xml echo $xml->asXML(); ?>
運行上述代碼,將輸出如下的xml格式的字符串:
<?xml version="1.0" encoding="utf-8"?><root><name>xiaoming</name><age>18</age><sexy>male</sexy></root>
到這里,我們已經介紹了php中實現json轉xml的方法,使用這些方法,可以方便地將json數據轉換成我們需要的xml格式數據進行處理,提高我們的開發效率。