Парсер товаров из XML

340
06 августа 2017, 08:48

Есть файл yml интернет магазина, можно ли как нибудь превратить его в массив и записать все данный в БД?

вот пример

`<yml_catalog date="2017-08-04 21:31">
<shop>
<name>Firebox</name>
<company>Firebox</company>
<url>http://site.com/</url>
<currencies>
<currency id="RUR" rate="1"/>
</currencies>
<categories>
<category id="1" parentId="0">Обувь</category>
<category id="2" parentId="0">Одежда</category>
<category id="3" parentId="0">Аксессуары</category>
<category id="4" parentId="1">Мужская</category>
<category id="5" parentId="1">Женская</category>
<category id="6" parentId="2">Мужская</category>
<category id="7" parentId="2">Женская</category>
<category id="12" parentId="0">Club</category>
</categories>
<offers>
<offer id="28464" type="vendor.model" available="true">
<name>Кроссовки Adidas Originals Beckenbauer</name>
<url>
http://site.com//catalogue/obuv/muzhskaya/krossovki_adidas_originals_beckenbauer_6990.html
</url>
<price>2635</price>
<oldprice>3290</oldprice>
<currencyId>RUR</currencyId>
<categoryId>4</categoryId>
<market_category>Одежда, обувь и аксессуары/Обувь/Мужская обувь</market_category>
<picture>
http://site.com/goodsimg/00000006577/~1Adi_.jpg
</picture>
<picture>
http://site.com/goodsimg/00000006577/2Adi..jpg
</picture>
<picture>
http://site.com/goodsimg/00000006577/3Adi.jpg
</picture>
<delivery>true</delivery>
<vendor>Adidas</vendor>
<vendorCode>6990</vendorCode>
<model>Улица</model>
<description>
Adidas Originals Beckenbauer – переиздание классической модели 1982 года adidas Beckenbauer Allround, посвящённой великому футболисту и тренеру Францу Бекенбауэру, который является единственным футболистом, выигравшим чемпионат мира по футболу и в качестве игрока, и в качестве тренера. Разработанная Adidas модель одобрена самим Бекенбауэром, о чём свидетельствует надпись «Endorsed by:» и изображение лица Франца и его подписи. Материал: замшаCезон: весна/лето
</description>
<param name="Размер" unit="RU">40</param>
<param name="Пол">Мужской</param>
<param name="Возраст">Взрослый</param>
</offer>
</shop>
</yml_catalog>
`
Answer 1

Пример ниже через SimpleXML. Думаю с остальным вы сами разберетесь.

Документация здесь http://php.net/manual/ru/simplexml.examples-basic.php

$xml = simplexml_load_file('hehe.xml');
foreach ($xml->xpath('/yml_catalog/shop') as $element) {
    var_dump((string)$element->name);
    foreach ($element->xpath('categories/category') as $category) {
        var_dump((string)$category->attributes()->id);
        var_dump((string)$category->attributes()->parentId);
        var_dump((string)$category);
    }
}
READ ALSO
MySQL перестала отвечать на запросы

MySQL перестала отвечать на запросы

Сегодня в обед все отлично работало, сейчас захожу проверить и вижу пустой сайтСразу побежал смотреть error_log

351
Переменную input в value чекбокса

Переменную input в value чекбокса

Господа помогите пожалуйстаМне нужно, чтобы value чекбокса содержало value инпута

308
Помогите решить проблему с php

Помогите решить проблему с php

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/nfwhrbvo/public_html/include/db_connectphp on line 8 Нет соединения с БД

288
Как называть классы и роуты?

Как называть классы и роуты?

ЗдравствуйтеКак мне назвать класс и роут? Обычно они выглядят следующим образом:

223