【问题标题】:Convert json to xml in php without an online converter在没有在线转换器的情况下在 php 中将 json 转换为 xml
【发布时间】:2012-11-01 22:54:25
【问题描述】:

我已经为此努力了一段时间,但找不到关于如何通过 file_get_contents 在 php 中将 json 转换为 xml 的解决方案。我不想使用在线转换器,但想将它放在我的网站根目录中。 提前致谢!

【问题讨论】:

标签: php json converter


【解决方案1】:

您可以使用 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();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-05
    • 2019-03-01
    • 2017-05-20
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多