2012-11-13 61 views
0

我一直在努力嘗試一段時間,但無法找到如何在php中通過file_get_contents將json轉換爲xml的解決方案。我不想使用在線轉換器,但希望將其放入我的網站根目錄中。 在此先感謝!在沒有在線轉換器的PHP中將json轉換爲xml

+2

檢查http://stackoverflow.com/questions/856833/is-there-一些轉換json到xml在php中 – air4x

+0

http://stackoverflow.com/questions/4345445/how-to-convert-json-to-xml-in-php 請在詢問之前做一個搜索一個問題。 = O) –

回答

2

您可以通過使用json_decode()將JSON轉換爲數組/對象,一旦您將其放置在數組中,則可以使用任何XML Manipulation method來構建XML。

例如,你可以構建XML結構是這樣的:

<array> 
    <data name="atrribute1">string 1</data> 
    <array name="array_atribute"> 
    <data name="attribute2">string 2</data> 
    <data name="attribute2">string 2</data> 
    </array> 
</array> 

通過DOMDocument和方法DOMDocument::createElement()

class XMLSerialize { 

    protected $dom = null; 

    public function serialize($array) 
    { 
     $this->dom = new DOMDocument('1.0', 'utf-8'); 
     $element = $this->dom->createElement('array'); 
     $this->dom->appendChild($element); 
     $this->addData($element, $array); 
    } 

    protected function addData(DOMElement &$element, $array) 
    { 
     foreach($array as $k => $v){ 
      $e = null; 
      if(is_array($v)){ 
       // Add recursive data 
       $e = $this->dom->createElement('array', $v); 
       $e->setAttribute('name', $k);  
       $this->addData($e, $v); 

      } else { 
       // Add linear data 
       $e = $this->dom->createElement('data', $v); 
       $e->setAttribute('name', $k); 
      } 

      $element->appendChild($e); 
     } 

    } 

    public function get_xml() 
    { 
     return $this->dom->saveXML(); 
    } 
}