Php de ürün aktarımı için XML olayını çözmeye çalışıyorum. Daha çok yeniyim.
Bir iki örnek inceledim. İncelediğim örneklerde genelde xml şablonu manuel include dosyasında tanımlanıyor aktarımlar bu şablona göre yapılıyor. Örneklerin birinde iş abartılmış. XML aktarımı için panel yazılmış. Panelin sol tarafında aktarım yapılabilecek alanlar var. Diğer tarafta ise browse deyip XML dosyasını seçiyorsunuz ve XMLdeki node'ları otomatik listeliyor. Sürükle bırak mantığıyla alanları eşleştiriyorsunuz. Malum bu sadece demoydu source kodlar olmadığına yapmak başa düştü. Ama bir türlü XML dosyası içindeki node'ları listelemeyi başaramadım. XML desenin sabit olamadığını düşünürsek bunu nasıl yaparız?
Şimdiden teşekkürler.
XML olayı
6
●405
- 18-01-2015, 19:55:59Ben böyle birşey yapsam şayet xml ile hiç uğraşmazdım sanırım, bir fikir vermem gerekirse XML' dosyasını Json olarak convert et, ve işlemlerini Json olarak yap..Ayrıca çalıştığın XML dosyasını burayada yazarsan daha detaylı bir inceleme yapabiliriz / im.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 19:55:59 -->-> Daha önceki mesaj 19:47:43 --
XML ile yapmak istersen şöyle bir örnek verebilirim.
<?php class xmlToDB { function getUrun() { $baslangicetiketi = 'urun'; $urun_kodu = 'ID'; $urun_adi = 'Adi'; $kategori_kodu = 'KategoriID'; $kategori_adi = 'KategoriAdi'; $urun_fiyati = 'Fiyat'; $parabirimi = 'kur'; $urun_stogu = 'Stok'; $urun_aciklamasi = 'Aciklama'; $urun_resmi = 'Resim'; $xmlData = simplexml_load_file("urunler.xml"); foreach($xmlData->{$baslangicetiketi} as $product) { $kategoriler[] = array('code' => $product->{$kategori_kodu}, 'cname' => $product->{$kategori_adi}, 'parentcode' => ''); $urunler[] = array('pcode' => $product->{$urun_kodu}, 'pname' => $product->{$urun_adi}, 'price1' => $product->{$urun_fiyati}, 'currency' => $product->{$parabirimi}, 'tax' => 'KDV DAHIL', 'stock' => $product->{$urun_stogu}, 'catid' => $product->{$kategori_kodu}, 'brand' => 'Oscommerce.TC', 'desc' => $product->{$urun_aciklamasi}); $resimler = array( 'pid' => $pid, 'image'=>$product->{$urun_resmi}, 'thumb'=>'', 'number' =>0 ); } } } ?> - 18-01-2015, 20:06:37Öncelikle ilgin için teşekkürler;
Belli bir XML dosyası yok. Amaç senin verdiğin örnekteki
$baslangicetiketi = 'urun';
$urun_kodu = 'ID';
$urun_adi = 'Adi';
$kategori_kodu = 'KategoriID';
$kategori_adi = 'KategoriAdi';
$urun_fiyati = 'Fiyat';
$parabirimi = 'kur';
$urun_stogu = 'Stok';
$urun_aciklamasi = 'Aciklama';
$urun_resmi = 'Resim';
tanımlamasını ara birimde eşleştirme yöntemiyle oluşturabilmek. Bunun için XML nin desenini bulmak gerek. Onu nasıl yaparız diye çırpınıyorum. - 18-01-2015, 20:19:03Diyelim ki buCeu adlı üyeden alıntı: mesajı görüntüle
<?xml version="1.0" encoding="utf-8"?> <INDEXGRUP> <KATEGORI KOD="IDX1012" TANIM="Güvenlik"> <GRUP KOD="1250" TANIM="CCTV Kamera"> <URUN KOD="IC-202W-G1" AD="GKB IP CAMERA - IC SERIES(yellow)" MARKA="GKB" GLOBALKOD="IC-202W-G1" SIRKETKOD="IDX"> <VERGI>KDV18</VERGI> <RESIM>http://www.indexpazar.com/all_images/IC-202W-G1.jpg</RESIM> <OZELLIK> <OZL TANIM="Network Arabirimi" DEGER="Ethernet 10BaseT/100BaseTX" /> <OZL TANIM="Görüntü Algılayıcı" DEGER="RGB/VGA 1/5" CMOS" /> <OZL TANIM="Işık Hassasiyeti" DEGER="1 Lux" /> <OZL TANIM="Lens" DEGER="3,2 mm Sabit" /> <OZL TANIM="Görüntü Sıkıştırma" DEGER="MPEG-4" /> <OZL TANIM="Çözünürlük" DEGER="Maksimum 640 x 480" /> <OZL TANIM="Görüntü Hızı" DEGER="25 fps /PAL,30 fps /NTSC" /> <OZL TANIM="Bant Genişliği" DEGER="64 K - 2M Bits/Sec" /> <OZL TANIM="Ses" DEGER="Dahili Mikrofon" /> <OZL TANIM="Güvenlik" DEGER="Şifre Korumalı" /> <OZL TANIM="Yönetim Yazılımı" DEGER="Ücretsiz" /> <OZL TANIM="Kayıt Yazılımı" DEGER="Ücretsiz" /> <OZL TANIM="İşletim Sistemi" DEGER="Windows XP ve Üzeri" /> <OZL TANIM="Güç Kaynağı" DEGER="DC 5 V, 1 A" /> <OZL TANIM="Hareket Algılama" DEGER="Var" /> <OZL TANIM="e-mail Uyarı" DEGER="Var" /> <OZL TANIM="Ölçüler" DEGER="125mm x 75mm x 35mm" /> <OZL TANIM="Ağırlık" DEGER="260 Gr" /> <OZL TANIM="Garanti Süresi" DEGER="2 Yıl" /> <OZL TANIM="Kullanıcı Sayısı Unicast" DEGER="4 (Aynı Anda)" /> <OZL TANIM="Kullanıcı SayısıMulticast" DEGER="Sınırsız" /> <OZL TANIM="DHCP Desteği" DEGER="Var" /> <OZL TANIM="Operating Temperature" DEGER="-10 ° C ~ +60 ° C" /> </OZELLIK> </URUN> <URUN KOD="IC-202W-G2" AD="GKB IP CAMERA - IC SERIES (black)" MARKA="GKB" GLOBALKOD="IC-202W-G2" SIRKETKOD="IDX"> <VERGI>KDV18</VERGI> <RESIM>http://www.indexpazar.com/all_images/IC-202W-G2.jpg</RESIM> <OZELLIK> <OZL TANIM="Network Arabirimi" DEGER="Ethernet 10BaseT/100BaseTX" /> <OZL TANIM="Görüntü Algılayıcı" DEGER="RGB/VGA 1/5" CMOS" /> <OZL TANIM="Işık Hassasiyeti" DEGER="1 Lux" /> <OZL TANIM="Lens" DEGER="3,2 mm Sabit" /> <OZL TANIM="Görüntü Sıkıştırma" DEGER="MPEG-4" /> <OZL TANIM="Çözünürlük" DEGER="Maksimum 640 x 480" /> <OZL TANIM="Görüntü Hızı" DEGER="25 fps /PAL,30 fps /NTSC" /> <OZL TANIM="Bant Genişliği" DEGER="64 K - 2M Bits/Sec" /> <OZL TANIM="Ses" DEGER="Dahili Mikrofon" /> <OZL TANIM="Güvenlik" DEGER="Şifre Korumalı" /> <OZL TANIM="Yönetim Yazılımı" DEGER="Ücretsiz" /> <OZL TANIM="Kayıt Yazılımı" DEGER="Ücretsiz" /> <OZL TANIM="İşletim Sistemi" DEGER="Windows XP ve Üzeri" /> <OZL TANIM="Güç Kaynağı" DEGER="DC 5 V, 1 A" /> <OZL TANIM="Hareket Algılama" DEGER="Var" /> <OZL TANIM="e-mail Uyarı" DEGER="Var" /> <OZL TANIM="Çalışma Sıcaklığı" DEGER="-10ºC - +60ºC" /> <OZL TANIM="Ölçüler" DEGER="125mm x 75mm x 35mm" /> <OZL TANIM="Ağırlık" DEGER="260 Gr" /> <OZL TANIM="Garanti Süresi" DEGER="2 Yıl" /> <OZL TANIM="Kullanıcı Sayısı Unicast" DEGER="4 (Aynı Anda)" /> <OZL TANIM="Kullanıcı SayısıMulticast" DEGER="Sınırsız" /> <OZL TANIM="DHCP Desteği" DEGER="Var" /> </OZELLIK> </URUN> </GRUP> </KATEGORI> - 18-01-2015, 21:05:47Size fikir vermek amacı ile bir kod yazdım, kolay gelsin.
<?php function toJson ($xml_url) { $xml = file_get_contents($xml_url); $xml = str_replace(array("\n", "\r", "\t"), '', $xml); $xml = trim(str_replace('"', "'", $xml)); $xml_cek = simplexml_load_string($xml); $json = json_encode($xml_cek); return $json; } $urunler = json_decode(toJson("http://tweettac.com/tumblr/urunler.xml"), true); // 1. urunu ekrana basalım. print_r($urunler['KATEGORI']['GRUP']['URUN'][0]); // 2. urunu ekrana basalım. print_r($urunler['KATEGORI']['GRUP']['URUN'][1]); ?> - 18-01-2015, 21:18:23Eline sağlık. Teşekkürler;
Ceu adlı üyeden alıntı: mesajı görüntüleCeu adlı üyeden alıntı: mesajı görüntüle