0

Web サイトから取得した 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 パーサー (ドキュメント$data) を使用して XMLにレンダリングします。

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