2012-11-13 2 views
0

지금 당분간 열심히 노력하고 있지만 json을 file_get_contents로 PHP에서 xml로 변환하는 방법에 대한 해결책을 찾을 수 없습니다. 나는 온라인 변환기를 사용하고 싶지 않지만 내 웹 사이트 루트 디렉토리에 갖고 싶다. 미리 감사드립니다.json을 온라인 변환기없이 PHP에서 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의이 같은 구조를 구축 할 수 있습니다 예를 들어

: DOMDocument으로

<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::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(); 
    } 
}