0

我正在寻找一种使用 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”对数据进行分组。

4

2 回答 2

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>';
于 2013-10-10T20:28:38.600 回答
0

您检索的是用JSON编写的内容。您可以尝试使用 PHP 原生函数来转换您的内容。以下示例是粗略的绘制如何处理您的解决方案。

首先,获取和解码 JSON(文档):

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

然后,使用 XML Parser (文档) 将您的内容呈现$data为 XML:

// Something like
$xml_parser = xml_parser_create();
xml_parse($xml_parser, $data);
于 2013-10-10T20:32:23.423 回答