dsewbh5588 2012-11-13 13:53
浏览 6
已采纳

在没有在线转换器的情况下将json转换为php中的xml

I've been trying hard on this for a while now, but can't find a solution on how to convert json to xml in php by file_get_contents. I don't want to use an online converter but want to have it in my website root directory. Thanks in advance!

  • 写回答

1条回答 默认 最新

  • dou7851 2012-11-13 13:57
    关注

    You can convert JSON to array/object by using json_decode(), once you have it inside array you can use any XML Manipulation method to build XML out of it.

    For example you may build XML structure like this:

    <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>
    

    By DOMDocument, and method 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();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分