arkadaşlar iyi akşamlar kullanmakta olduğum yazılım için de xml ile ürün çekimi yapıyorum ancak şöyle bir durum söz konusu KADIN > İç Giyim > Çorap bu kategoriyi alabiliyorum ve otomatik olarak ekliyor ancak Çocuk > Kız Çocuk > Çorap alması gereken kategoriyi de Kadın kategorisi altındaki çorap kısmına ekliyor kategorinin sadece başlığını kontrol ediyor bana bu konu hakkında bir yol gösterip yardımcı olur musunuz ÜCRETLİ/ÜCRETSİZ xml.php dosyam bu şekilde

<?php
include 'control/dbase.php';
if(isset($_GET['id'])){
    if($_GET['id'] > 0){
        $query = $db->query("SELECT * FROM xml_aktar WHERE id = '{$_GET['id']}' LIMIT 1", PDO::FETCH_ASSOC);
    }else if($_GET['id'] == 0){
        $query = $db->query("SELECT * FROM xml_aktar", PDO::FETCH_ASSOC);
    }
    if($query->rowCount()){
        function RecurseXML($xml,$parent,$aranan,$urun_id){
           global $db;

           $urun_kontrol = $db->query("SELECT dil FROM urun WHERE id = '{$urun_id}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);

           foreach($xml as $key=>$value){
              if(RecurseXML($value,$parent.".".$key,$aranan,$urun_id) == 0){
                $bol = explode('|', $aranan);
                foreach($bol as $ara){
                    if(!empty($ara)){
                        if(strstr($key, $ara)){
                            if($bol[0] == $key){
                                $varyant = $value;
                            }else if($bol[1] == $key){
                                $alt_varyant = $value;
                            }else if($bol[2] == $key){
                                $stok = $value;
                            }else if($bol[3] == $key){
                                $fiyat = $value;
                            }
                            if(!empty($stok) AND !empty($alt_varyant) AND !empty($varyant)){
                                $varyant_kontrol = $db->query("SELECT * FROM urun_varyant WHERE urun_id = '{$urun_id}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
                                if($varyant_kontrol){
                                    $varyant_id = $varyant_kontrol['id'];
                                }else{
                                    $ekle = $db->prepare("INSERT INTO urun_varyant SET dil = ?, urun_id = ?, baslik = ?");
                                    $ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$varyant));
                                    $varyant_id = $db->lastInsertId();
                                }
                                if(!isset($fiyat)){
                                    $fiyat = 0;
                                }
                                $ekle = $db->prepare("INSERT INTO urun_varyant_secenek SET dil = ?, urun_id = ?, urun_vayant_id = ?, baslik = ?");
                                $ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$varyant_id,$alt_varyant));
                                $alt_varyant_id = $db->lastInsertId();
                                $varyant_key = $alt_varyant_id.'-';
                                $ekle = $db->prepare("INSERT INTO urun_varyant_secenek_fiyat_stok SET dil = ?, urun_id = ?, varyant_key = ?, fiyat = ?, stok = ?");
                                $ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$varyant_key,$fiyat,$stok));
                            }
                        }
                    }
                }
              }
           }
        }
        function RecurseXMLimg($xml,$parent,$aranan,$urun_id){
           global $db;
           $urun_kontrol = $db->query("SELECT dil FROM urun WHERE id = '{$urun_id}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
           foreach($xml as $key=>$value){
              if(RecurseXMLimg($value,$parent.".".$key,$aranan,$urun_id) == 0){
                $bol = explode('|', $aranan);
                foreach($bol as $ara){
                    if(!empty($ara)){
                        if(strstr($key, $ara)){
                            $value = trim($value);
                            $value = explode('?',$value);
                            $value = $value[0];
                            $izinli_formatlar = array('jpg','jpeg','JPG','JPEG','png','PNG','svg','gif');
                            $format = end(explode('.', $value));
                            if(in_array($format,$izinli_formatlar)){
                                $resim_adi = time().'-'.uniqid().'.'.$format;
                                copy($value,'upload/'.$resim_adi);
                                $ekle = $db->prepare("INSERT INTO urun_resim SET dil = ?, urun_id = ?, resim = ?, sira = ?");
                                $ekle = $ekle->execute(array($urun_kontrol['dil'],$urun_id,$resim_adi,1));
                            }
                        }
                    }
                }
              }
           }
        }
        function RecurseXMLkategori($xml,$parent,$aranan,$dil){
           global $db;
           $kategori_kontrol = $db->query("SELECT baslik FROM kategori WHERE dil = '{$dil}' AND baslik = '{$aranan}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
           if($kategori_kontrol){
               return $kategori_kontrol['baslik'];
           }else{
                foreach($xml as $key=>$value){
                    if(!empty($aranan)){
                        if(strstr($key, $aranan)){
                            return $value;
                        }else{
                            foreach($value as $key=>$value){
                                if(!empty($aranan)){
                                    if(strstr($key, $aranan)){
                                        return $value;
                                    }else{
                                        foreach($value as $key=>$value){
                                            if(!empty($aranan)){
                                                if(strstr($key, $aranan)){
                                                    return $value;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
           }
          
        }
        function xml_baglan($link){
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,$link);
            curl_setopt($ch, CURLOPT_FAILONERROR,1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 15);
            $result = curl_exec($ch);          
            curl_close($ch);
            return $result;
        }
        foreach( $query as $kontrol ){
            
            $xml = new SimpleXMLElement(xml_baglan($kontrol['xml_link']));
            if($xml->{$kontrol['agac']}){
                foreach ($xml->{$kontrol['agac']} as $urun) {

                    $kategori_bol = explode('|', $kontrol['kategori_id']);
                    $baslik = $urun->{$kontrol['baslik']};
                    $kisa_aciklama = $urun->{$kontrol['kisa_aciklama']};
                    $stok_kodu = $urun->{$kontrol['stok_kodu']};
                    $stok = $urun->{$kontrol['stok']};
                    $marka = $urun->{$kontrol['marka_id']};
                    $gelis_fiyat = $urun->{$kontrol['gelis_fiyat']};
                    $piyasa_fiyat = $urun->{$kontrol['piyasa_fiyat']};
                    $fiyat = $urun->{$kontrol['fiyat']};
                    $kargo_fiyat = $urun->{$kontrol['kargo_fiyat']};
                    $kdv = $urun->{$kontrol['kdv']};
                    $aciklama = $urun->{$kontrol['aciklama']};
                    $kategori[0] = RecurseXMLkategori($urun,'',$kategori_bol[0],$urun_kontrol['dil']);
                    $kategori[1] = RecurseXMLkategori($urun,'',$kategori_bol[1],$urun_kontrol['dil']);
                    $kategori[2] = RecurseXMLkategori($urun,'',$kategori_bol[2],$urun_kontrol['dil']);
                    $kategori[3] = RecurseXMLkategori($urun,'',$kategori_bol[3],$urun_kontrol['dil']);
                    $resim[0] = $urun->{$kontrol['resim1']};
                    $resim[1] = $urun->{$kontrol['resim2']};
                    $resim[2] = $urun->{$kontrol['resim3']};
                    $resim[3] = $urun->{$kontrol['resim4']};
                    $resim[4] = $urun->{$kontrol['resim5']};

                    $kategori_sayisi = 3;

                    if(empty($kategori[0])){
                        if(!empty($kontrol['agac_kategori']) AND !empty($kontrol['agac_kategori_ayirac'])){
                            $agac_kategori_bol = explode($kontrol['agac_kategori_ayirac'],$urun->{$kontrol['agac_kategori']});
                            $kategori_sayisi = 0;
                            foreach($agac_kategori_bol as $akb){
                                if(!empty($akb)){
                                    $kategori[$kategori_sayisi] = $akb;
                                    $kategori_sayisi++;
                                }
                            }
                        }
                    }



                    if($fiyat == ''){ $fiyat = 0; }
                    if($piyasa_fiyat == ''){ $piyasa_fiyat = 0; }
                    if($stok == ''){ $stok = 0; }

                    if($baslik != '' AND $stok_kodu != ''){
                        $urun_kontrol = $db->query("SELECT id FROM urun WHERE dil = '{$kontrol['dil']}' AND stok_kodu = '{$stok_kodu}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
                        if($urun_kontrol){
                            $guncelle = $db->prepare("UPDATE urun SET fiyat = ?, piyasa_fiyat = ?, stok = ? WHERE stok_kodu = ? LIMIT 1");
                            $guncelle = $guncelle->execute(array($fiyat,$piyasa_fiyat,$stok,$stok_kodu));

                           $db->exec("DELETE FROM urun_varyant WHERE urun_id = '{$urun_kontrol['id']}'");
                           $db->exec("DELETE FROM urun_varyant_secenek WHERE urun_id = '{$urun_kontrol['id']}'");
                           $db->exec("DELETE FROM urun_varyant_secenek_fiyat_stok WHERE urun_id = '{$urun_kontrol['id']}'");
                            RecurseXML($urun,'',$kontrol['varyant_baslik'].'|'.$kontrol['alt_varyant_baslik'].'|'.$kontrol['alt_varyant_stok'].'|'.$kontrol['alt_varyant_fiyat'],$urun_kontrol['id']);
                        }else{

                            $kategori_id = 0;
                            for ($i = 0; $i <= $kategori_sayisi; $i++) {
                                if($kategori[$i] != ''){
                                    $guncel_kategori = $kategori[$i];
                                    $kategori_kontrol = $db->query("SELECT id FROM kategori WHERE dil = '{$kontrol['dil']}' AND baslik = '{$guncel_kategori}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
                                    if($kategori_kontrol){
                                        $kategori_id = $kategori_kontrol['id'];
                                    }else{
                                        $ekle = $db->prepare("INSERT INTO kategori SET dil = ?, baslik = ?, link = ?, kisa_aciklama = ?, aciklama = ?, popup_resim = ?, popup_link = ?, aktif = ?, sira = ?, ust_kategori = ?, ust_menude_goster = ?, alt_menude_goster = ?");
                                        $ekle = $ekle->execute(array($kontrol['dil'],$guncel_kategori,sef($guncel_kategori),$guncel_kategori,'','','',1,999,$kategori_id,0,0));
                                        $kategori_id = $db->lastInsertId();
                                    }
                                }
                            }

                            $marka_id = 0;
                            if($marka != ''){
                                $marka_kontrol = $db->query("SELECT * FROM marka WHERE dil = '{$kontrol['dil']}' AND baslik = '{$marka}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
                                if($marka_kontrol){
                                    $marka_id = $marka_kontrol['id'];
                                }else{
                                    $ekle = $db->prepare("INSERT INTO marka SET dil = ?, baslik = ?, resim = ?");
                                    $ekle = $ekle->execute(array($kontrol['dil'],$marka,'bos.png'));
                                    $marka_id = $db->lastInsertId();
                                }
                            }

                            if($kisa_aciklama == ''){ $kisa_aciklama = $baslik; }
                            if($kargo_fiyat == ''){ $kargo_fiyat = 0; }
                            if($kdv == ''){ $kdv = 18; }

                            $ekle = $db->prepare("INSERT INTO urun SET dil = ?, baslik = ?, link = ?, kisa_aciklama = ?, stok_kodu = ?, stok = ?, marka_id = ?, gelis_fiyat = ?, piyasa_fiyat = ?, fiyat = ?, kargo_fiyat = ?, kdv = ?, aciklama = ?, kur_tipi = ?, goruntulenme = ?, durum = ?, kategori_id = ?, etiket = ?");
                            $ekle = $ekle->execute(array($kontrol['dil'],$baslik,sef($baslik),$kisa_aciklama,$stok_kodu,$stok,$marka_id,$gelis_fiyat,$piyasa_fiyat,$fiyat,$kargo_fiyat,$kdv,$aciklama,$kontrol['kur_tipi'],0,1,$kategori_id,0));

                            $urun_id = $db->lastInsertId();
                            RecurseXMLimg($urun,'',$kontrol['resim1'].'|'.$kontrol['resim2'].'|'.$kontrol['resim3'].'|'.$kontrol['resim4'].'|'.$kontrol['resim5'],$urun_id);

                            RecurseXML($urun,'',$kontrol['varyant_baslik'].'|'.$kontrol['alt_varyant_baslik'].'|'.$kontrol['alt_varyant_stok'].'|'.$kontrol['alt_varyant_fiyat'],$urun_id);

                        }
                    }
                }
            }else{
                echo '<b>İçeriğe ulaşılamadı.</b>';
            }
        }
    }else{
        die('<meta http-equiv="refresh" content="0;URL='.$site.'">');
    }
}else{
    die('<meta http-equiv="refresh" content="0;URL='.$site.'">');
}
?>