laravel

Как в Laravel прочитать XML файл?

В этой записи вы узнаете как прочитать XML файл в Laravel. Давайте посмотрим на приведенный ниже пример преобразования XML файла в php массив laravel.

Этот метод чтения легко использовать в версиях laravel 6, laravel 7, laravel 8, laravel 9 и laravel 10.

Вы можете создать или загрузить простой XML файл, как показано ниже.

Давайте добавим метод чтения xml файла. Код представлен ниже:

<?php
  
namespace App\Http\Controllers;
   
use Illuminate\Http\Request;
  
class XMLController extends Controller
{
    /**

     *
     * @return response()
     */
    public function index()
    {
        $xmlString = file_get_contents(public_path('sample.xml'));
        $xmlObject = simplexml_load_string($xmlString);
                   
        $json = json_encode($xmlObject);
        $phpArray = json_decode($json, true); 
   
        dd($phpArray);
    }
}

Здесь мы читаем содержимое файле в строку и сохраняем ее в переменную $xmlString с помощью функций file_get_contents. Далее используя функцию simplexml_load_string мы переводим строку в объект XML и сохраняем ее в переменную $xmlObject. И на заключительных этапе нужно перевести объект XML в json с помощью json_encode, и затем с помощью json_decode переведем строку json в массив.

Вывод этого метода показан ниже:

Array

(

    [food] => Array

        (

            [0] => Array

                (

                    [name] => Belgian Waffles

                    [price] => $5.95

                    [description] => Two of our famous Belgian Waffles with plenty of real maple syrup

                    [calories] => 650

                )

            [1] => Array

                (

                    [name] => Strawberry Belgian Waffles

                    [price] => $7.95

                    [description] => Light Belgian waffles covered with strawberries and whipped cream

                    [calories] => 900

                )

            [2] => Array

                (

                    [name] => Berry-Berry Belgian Waffles

                    [price] => $8.95

                    [description] => Light Belgian waffles covered with an assortment of fresh berries and whipped cream

                    [calories] => 900

                )

            [3] => Array

                (

                    [name] => French Toast

                    [price] => $4.50

                    [description] => Thick slices made from our homemade sourdough bread

                    [calories] => 600

                )

            [4] => Array

                (

                    [name] => Homestyle Breakfast

                    [price] => $6.95

                    [description] => Two eggs, bacon or sausage, toast, and our ever-popular hash browns

                    [calories] => 950

                )

        )

)
To top