данные из xml в mysql, помогите
Страницы: 1
данные из xml в mysql, помогите
Вообще суть такая, что нужно сделать экспорт данных из xml файла в бд.
сам файл https://drive.google.com/open?id=0B4kSeitV2ouoQjdEQTF4cHI0OVlBaGIxSHhEUDhMREJUT0ZJ .
Получаю из этого файла объект
$file = $_SERVER['DOCUMENT_ROOT'].'/web/xml/import.xml';
$xml = simplexml_load_file($file);

Как я понял, там категории товар, подкатегории и сами товары.
Думал разделить и сделать отдельные запросы для отдельных категорий.
Как получить всё по отдельности?
Пытаюсь взять допустим все ид категорий
foreach ($xml AS $rez) {
    echo $rez -> Группы->Группа->Ид;
}
Вывод только самый первый ид и останавливается.
Помогите плз или дайте ссылку где можно разобраться. Сам гуглил уже, никак не смог разобраться.
Не знаю ваш уровень.

Посмотрите для начала, что в переменной $xml получилось. Будет удобно обращаться и от туда брать.

Посмотреть можно так:
Код
<?php
echo '<pre>';
print_r ($xml);
echo '</pre>';

Копируете это в notepade++ и смотрите по скобкам, что к чему относится



Код для вашего примера:
Код
<?php
$file = $_SERVER['DOCUMENT_ROOT'].'/web/xml/import.xml';
$xml= simplexml_load_file($file);

$groups = $xml->Классификатор->Группы->Группа;
foreach ($groups as $group) {
   echo $group->Ид.' ';
   echo $group->Наименование.'<br>';
} 
 
Возможно, проблемы с кириллицей. Если заменить на латинские буквы (код снизу), то таких  проблем не возникает, но появляется другая. В Группах вложенные Группа, в них есть свои Группы, поэтому так, по-простому, выдрать все ид не получится.

foreach ($xml->Classif->Groups->Group as $group) {
   echo $group->Id . ' '; echo $group->Name .'<br>';

}
Изменено: oleg zarubin - 22 Августа 2018 10:04
Цитата
Андрей Кривушонок пишет:
Вообще суть такая, что нужно сделать экспорт данных из xml файла в бд.
сам файл https://drive.google.com/open?id=0B4kSeitV2ouoQjdEQTF4cHI0OVlBaGIxSHhEUDhMREJUT0ZJ .
Получаю из этого файла объект
$file = $_SERVER['DOCUMENT_ROOT'].'/web/xml/import.xml';
$xml = simplexml_load_file($file);

Как я понял, там категории товар, подкатегории и сами товары.
Думал разделить и сделать отдельные запросы для отдельных категорий.
Как получить всё по отдельности?
Пытаюсь взять допустим все ид категорий
foreach ($xml AS $rez) {
echo $rez -> Группы->Группа->Ид;
}
Вывод только самый первый ид и останавливается.
Помогите плз или дайте ссылку где можно разобраться. Сам гуглил уже, никак не смог разобраться
Данным циклом не обойти дерево данного xml.
Примерно так можно спарсить группы:



Код
<?php
$file = $_SERVER['DOCUMENT_ROOT'].'/import.xml';
$xml = simplexml_load_file($file); 

$json = json_encode($xml);
$array = json_decode($json,TRUE);

$group = [];
function get_group($data, &$group, $parent = ''){
    foreach($data as $key=>$value){
        if(isset($data['Ид'])){
                $group[$data['Ид']] = [
                    'id' => $data['Ид'],
                    'parent_id' =>  $parent,
                    'name' => $data['Наименование']
                ];

            if($key == 'Группы' && isset($data[$key]['Группа'])){
                get_group($data[$key]['Группа'], $group, $data['Ид']);
            }
        }else{
            if(is_array($data)){
                foreach($data as $k => $v){
                    get_group($data[$k], $group, $parent);
                }
                
            }
        } 
    }
}

get_group($array['Классификатор'], $group);
echo '<pre>';
print_r($group);
echo '</pre>';
exit;
 
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
22:08 Крайний Апдейт января - 31.01.2023 Яндекс выдача 
20:31 Прикрепить файл PDF 
20:30 В Google «бьют тревогу» из-за нового чат-бота ChatGPT 
20:29 SEO 2023: Яндекс раскрыл* главные факторы ранжирования (как занять ТОП ПС, получить много трафика и денег) 
19:58 Воскресный Апдейт 29-01.2023 Яндекс выдача 
19:36 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
15:20 Adtrafico - Правильная партнёрская сеть под бурж трафик 
22:09 База логинов Телеграм для рассылки и инвайта. ЦА - Cтавки на спорт 4000 логинов 
21:46 Hotspot Switch IP - Меняй IP полностью бесплатно! 
20:52 Свежая База чатов для рекламы в Телеграм . Piar chat mix по станам 5000 шт 
20:50 Английская база чатов tg, тематика-NFT, Cripto 1000 чатов 
20:48 Продажа чатов по Криптовалюте В Telegram 2100 штук Global 
20:43 Свежая База логинов Телеграм для рассылки и инвайта. ЦА - криптовалюта ru 
20:40 База логинов Телеграм для рассылки и инвайта. ЦА - Фриланс 
22:08 Помогите придумать самый интересный вопрос 
21:23 "Яндекс Маркет" начал выкупать у россиян ношеную одежду и обувь 
20:44 Платформа АНТИСТАВОК - ставки на события с обратным исходом! 
20:34 150+ хакерских поисковых систем и инструментов 
20:27 Николай Дроздов раскрыл причину, по которой переломал ребра: "Последствия моей вегетарианской жизни" 
19:25 МyLead дает советы по продвижению 
19:47 Добро пожаловать в цифровой мир...