将返回的PHP文件转换为XML

时间:2013-10-10 20:02:54

标签: php html xml parsing html-parsing

我正在寻找一种方法,使用PHP脚本将我从网站检索的PHP文件转换为XML格式。

我得到的返回文件是:

    { "days": [ 
    {"reference":"13L6-A67-1", "dayinit":"4","hourinit":"9"},
    {"reference":"13L6-A67-1", "dayinit":"5","hourinit":"9"} ]}

无论如何我可以将它转换为这样的XML文件:

    <?xml version="1.0"?>
    <days>
        <day>
            <lesson>
                <reference>13L6-A67-1</reference>
                <hourinit>9</hourinit>

            </lesson>
        </day>
        <day>
            <lesson>
                <reference>13L6-A67-1</reference>

                <hourinit>9</hourinit>

            </lesson>
        </day>
    </days>

最好是根据“dayinit”对数据进行分组。

2 个答案:

答案 0 :(得分:1)

您可以将数据转换为数组并循环遍历它:

$test_array = json_decode('{ "days": [
{"reference":"13L6-A67-1", "dayinit":"4","hourinit":"9"},
{"reference":"13L6-A67-1", "dayinit":"5","hourinit":"9"} ]}',true);

$xml = '<?xml version="1.0"?>';
$xml .= '<days>';

foreach($test_array['days'] as $day) {
    $xml .= '<day>';
        $xml .= '<lesson>';
            $xml .= '<reference>';
                $xml .= $day['reference'];
            $xml .= '</reference>';
            $xml .= '<dayinit>';
                $xml .= $day['reference'];
            $xml .= '</reference>';
            $xml .= '</dayinit>';
                $xml .= $day['hourinit'];
            $xml .= '</hourinit>';
        $xml .= '</lesson>';
    $xml .= '</day>';
}

$xml .= '</days>';

答案 1 :(得分:0)

您检索的内容是用JSON写的内容。您可以尝试使用PHP本机函数来转换内容。以下示例粗略地说明了如何处理解决方案。

首先,获取并解码JSON(documentation):

$json = '...'; // JSON content
$data = json_decode($json, true);

然后,使用XML Parser(documentation)将您的$data呈现为XML:

// Something like
$xml_parser = xml_parser_create();
xml_parse($xml_parser, $data);