Radiance Mesaj tarihi: Mart 27, 2009 Mesaj tarihi: Mart 27, 2009 bir XML dosyam var oradan verileri alıp database kayıt ettirmek istiyorum ama verileri cekemedim. Örnek KOD. 00013 Parça Sayısına Göre Puzzle'lar 500 PARÇA JUMBO PUZZLE JUM500 THREE PUPPIES bi el atarmısınız
di Mesaj tarihi: Mart 27, 2009 Mesaj tarihi: Mart 27, 2009 Magic Word is SimpleXML. http://www.php.net/manual/en/book.simplexml.php
Radiance Mesaj tarihi: Mart 27, 2009 Konuyu açan Mesaj tarihi: Mart 27, 2009 Burayı inceledim ama verleri istedigim gibi alamıyorum.
di Mesaj tarihi: Mart 27, 2009 Mesaj tarihi: Mart 27, 2009 Bu nane ile ordaki herseyi bir array kullanir gibi kullaniyorsun (bkz: object). O haliyle de isine yaramiyorsa senin icin yapilabilecek pek birsey yok =) Yapmak istedigini soylesen daha rahat olur aslinda.
Radiance Mesaj tarihi: Mart 27, 2009 Konuyu açan Mesaj tarihi: Mart 27, 2009 Yamak istedigim buradaki verileri alıp database'e kayıt etmek. Database yapısı farklı
di Mesaj tarihi: Mart 27, 2009 Mesaj tarihi: Mart 27, 2009 E o halde hepsini alip veri tabanina kaydedebilecegin bir formata donustureceksin. Zor bir yani yok gercekten istedigin seyin. Okumaya/yazmaya useniyorsun sanki biraz ? =) Bak surada guzel ornekler var. Senin kullanman gereken de bu; http://www.php.net/manual/en/function.simplexml-load-string.php
Radiance Mesaj tarihi: Mart 27, 2009 Konuyu açan Mesaj tarihi: Mart 27, 2009 üşenmiyorum dünden beri ugrasıyorum olmadı : ) pek iyi değilim php'de
Radiance Mesaj tarihi: Nisan 10, 2009 Konuyu açan Mesaj tarihi: Nisan 10, 2009 $Veri = array(); $kaynak = file_get_contents("catalog.xml); $temp = split("",$kaynak); for ($i=1;$i<=2462;$i++){ if(trim($temp[$i])==''){continue;} preg_match('/(.*)/i', $temp[$i], $Nm); preg_match('/(.*)/i', $temp[$i], $Cn); preg_match('/(.*)/i', $temp[$i], $Tm); preg_match('/(.*)/i', $temp[$i], $Dmt); preg_match('/(.*)>/i', $temp[$i], $Pct); array_push($Veri,array($Nm[1],$Cn[1],$Tm[1],$Dmt[1],$Pct[1])); } echo ''; for($x=0;$x<=2461;$x++) { echo "n".'Urun Adi : '; @print_r($Veri[$x][0]); echo "n".'Parca Sayisi : '; @print_r($Veri[$x][1]); echo "n".'Marka : '; @print_r($Veri[$x][2]); echo "n".'Kutu Boyutu : '; @print_r($Veri[$x][3]); echo "n".'Resim : '; @print_r($Veri[$x][4]); echo "n".''; echo $a++; } echo ''; ?> Bu kod ile verileri cekiyorum ama tarzında olan verileri alamıyorum bunları almak icin ne yapmam gerekli.
riglous Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 XML'i text olarak degilde XML olarak kullanman gerekli. Yukarida SimpleXML linki verilmis. O da olmazsa DOM kullan. Ogrenmek istememeni anlayabiliyorum ama bireysel inadina karsilik hala soru sorup cevap beklemeni anlayamiyorum.
Radiance Mesaj tarihi: Nisan 10, 2009 Konuyu açan Mesaj tarihi: Nisan 10, 2009 Win Server 2003 iis sunucu SimpleXML calısıyormu?. Eger calısıyorsa benim Sunucuda yok bunu daha kaç farklı yolla yapabilirim birşey cevaplamak istiyorsan cevapla, yoksa ego tatmin icin cevap yazmayın. Yapabilsem sormama herhalde.
Kojiroh Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 O kodla dediğin verileri alamaman doğal. O kodla yalnızca belli node isimleri vermiş, o isimlerdeki nodeların içindeki yazıları almışsın. Burdaki "resim.jpg" verilerini bu şekilde almazsın. Url dediği şey, Pct node'unun bi attribute'u ve "resim.jpg" de bunun değeri; içindeki yazı değil. Yapman gereken, ... şeklinde bi kontrol değil de; <node_ismi attribute_ismi1="değer1" attribute_ismi2="değer2"...>...</node_ismi> şeklinde, her node için her attribute'un ve bunların değerlerinin de ele alındığı bi kontrol. Öte yandan, child/parent node'lara da hiç dikkat etmiyo buraya yazdığın kod. Hangi Cpn hangi P'ye ait, hangi Products'a ait belli değil. Bu da kodunun güvenilebilirliğini, hata kaldırabilirliğini azaltıyo. Agresif olmana gerek yok, topik başından beri böyle bi tavır takınmışsın. Ego tatmini yapıldığını sanman da bundandır. SimpleXML harika bi öneri, senin burada yazmaya, yapmaya çalıştığın her şey yapılıp önüne sunuluyo. İstediğin node'un istediğin child'ının istediğinin attribute'unu, içindeki yazıyı alabiliyosun. Neden gözü kapalı reddettiğini anlayamadım. Hem SimpleXML'in çalışması için PHP5 olması yeterli ayrıca, sunucuyla bi alakası olduğunu sanmıyorum. Bi hata falan veriyosa, ona bakalım, daha sağlıklı bi cevap yazabiliriz.
Radiance Mesaj tarihi: Nisan 10, 2009 Konuyu açan Mesaj tarihi: Nisan 10, 2009 Fazla tepki göstermiş olabilirim kaç gündür bununla ugrasıyorum. denemedigim yöntem kalmadı. bu koda sunu ekledim. preg_match('//i', $temp[$i], $Pct); bir arkadaş yardım etti. o resimleri aldıgını söylüyor ama ben alamıyorum. SimpleXML olayına gelince. Kullandıgım Kod - - 00013 Parça Sayısına Göre Puzzlelar 500 PARÇA JUMBO PUZZLE JUM500 THREE PUPPIES 5x23x32 - 49*35 00013 '; $XML = new SimpleXmlElement($DATA, LIBXML_NOCDATA); echo $XML->P[0]->Nm; echo $XML->P[0][OID]; Verdigi Hata: Fatal error: Cannot instantiate non-existent class: simplexmlelement in XML2.php on line 22 Satır 22 : $XML = new SimpleXmlElement($DATA, LIBXML_NOCDATA);
Ractamainus Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 php'den anlamam.. şimdi simplexml'e baktım, iyiymiş. kolay da. ama öncelikle xml string'inin içinde xml standartlarını kullanmamışsın.. muhtemelen kopyaladığın editör/reader'ın expand için kullandığı "-" işaretini almışsın.. xml'in şöyle olmalı: <?xml version="1.0" encoding="utf-8" ?><Products UserName="" Password=""><P OID="1"><Cd>00013</Cd><Cpn>Parça Sayısına Göre Puzzlelar</Cpn><Cn>500 PARÇA</Cn><Tm>JUMBO PUZZLE</Tm><Md /><Nm>JUM500 THREE PUPPIES</Nm><Dsc /><Pct Url="[puzzledunyasi.com.tr]; /><Dmt>5x23x32</Dmt><Dyn><Dp T="Text" N="Boyut">49*35</Dp><Dp T="Text" N="mal kodu">00013</Dp></Dyn></P></Products>
Radiance Mesaj tarihi: Nisan 10, 2009 Konuyu açan Mesaj tarihi: Nisan 10, 2009 XML öyle zaten buraya kopyalarken öyle almış. zaten bunuda ben yapmadım başka bi kaynaktan cekiyorum beynim durdu artık neler yapıyorum ben bile anlam veremiyorum Hata 1 SimpleXMLElement::__construct() [simplexmlelement.--construct]: Hata 2 Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:Inetpubvhostsabostanci.nethttpdocsXML2.php:20 Stack trace: #0 C:Inetpubvhostsabostanci.nethttpdocsXML2.php(20): SimpleXMLElement->__construct(' Kojiroh Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 Sınıfı göremediğine göre aklıma gelen ilk olasılık PHP sürümünün 5 olmaması. Eğer yenisini kurabiliyosan kur derim. Yok eğer kuramıyosan, SimpleXML işi yatar. bu durumda bi öneri Böyle bi durumda kendi sınıflarını yazmanı tavsiye ederim. XML dökümanı, düğümler ve bu düğümlerin attribute'larını tutarsın. Dökümanda dökümanın adresi ve en üst seviyedeki nodeların bi listesi tutulur. Her node için node ismi, varsa parent node, varsa child node'ların listesi, varsa attribute'ların listesi ve varsa node'un içeriği tutulur. Attribute'lar için de ait olduğu node'u ve attribute ismi ile değerini tutarsın. Tek yönlü bi okuma yapmaktansa bu şekilde bi yapı oluştur derim. Büyük XML dosyalarında bellek sorunu çıkarabilir tabii. Ben de regexten pek anlamam o yüzden onun için bi şey diyemicem. Radiance Mesaj tarihi: Nisan 10, 2009 Konuyu açan Mesaj tarihi: Nisan 10, 2009 Dogru php5 degilmiş php4 müş 5 olarak ayarladım bir sürü hata verdi. riglous Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 DOM kullan (ikinciye soyledim diye egom bir tatmin oldu bir tatmin oldu sorma). NOT: Yok deme, daha ortada AJAX'in A'si yokken DOM'lari kullaniyoduk JS'de. di Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 Madem versiyon bagimliyiz -ki su zamanda cok sacma olmus, mumkunse hosting saglayicini degistir-, herkesi kurtaracak bir oneri daha sunayim o halde. phpclasses.org Ornegini anlayabildigin bir xml parser indirip onu kullan. di Mesaj tarihi: Nisan 11, 2009 Mesaj tarihi: Nisan 11, 2009 riglous said: DOM kullan (ikinciye soyledim diye egom bir tatmin oldu bir tatmin oldu sorma). NOT: Yok deme, daha ortada AJAX'in A'si yokken DOM'lari kullaniyoduk JS'de. ükela ya. riglous Mesaj tarihi: Nisan 12, 2009 Mesaj tarihi: Nisan 12, 2009 Bak daha da ukalalasiyorum Birileri benden once oturup yapmis. http://www.bildirgec.org/yazi/php-4-icin-simplexml Paylaş https://forum.paticik.com/topic/3945483-php-xml/ Daha fazla paylaşım seçeneği… Takipçiler 0
Kojiroh Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 Sınıfı göremediğine göre aklıma gelen ilk olasılık PHP sürümünün 5 olmaması. Eğer yenisini kurabiliyosan kur derim. Yok eğer kuramıyosan, SimpleXML işi yatar. bu durumda bi öneri Böyle bi durumda kendi sınıflarını yazmanı tavsiye ederim. XML dökümanı, düğümler ve bu düğümlerin attribute'larını tutarsın. Dökümanda dökümanın adresi ve en üst seviyedeki nodeların bi listesi tutulur. Her node için node ismi, varsa parent node, varsa child node'ların listesi, varsa attribute'ların listesi ve varsa node'un içeriği tutulur. Attribute'lar için de ait olduğu node'u ve attribute ismi ile değerini tutarsın. Tek yönlü bi okuma yapmaktansa bu şekilde bi yapı oluştur derim. Büyük XML dosyalarında bellek sorunu çıkarabilir tabii. Ben de regexten pek anlamam o yüzden onun için bi şey diyemicem.
Radiance Mesaj tarihi: Nisan 10, 2009 Konuyu açan Mesaj tarihi: Nisan 10, 2009 Dogru php5 degilmiş php4 müş 5 olarak ayarladım bir sürü hata verdi.
riglous Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 DOM kullan (ikinciye soyledim diye egom bir tatmin oldu bir tatmin oldu sorma). NOT: Yok deme, daha ortada AJAX'in A'si yokken DOM'lari kullaniyoduk JS'de.
di Mesaj tarihi: Nisan 10, 2009 Mesaj tarihi: Nisan 10, 2009 Madem versiyon bagimliyiz -ki su zamanda cok sacma olmus, mumkunse hosting saglayicini degistir-, herkesi kurtaracak bir oneri daha sunayim o halde. phpclasses.org Ornegini anlayabildigin bir xml parser indirip onu kullan.
di Mesaj tarihi: Nisan 11, 2009 Mesaj tarihi: Nisan 11, 2009 riglous said: DOM kullan (ikinciye soyledim diye egom bir tatmin oldu bir tatmin oldu sorma). NOT: Yok deme, daha ortada AJAX'in A'si yokken DOM'lari kullaniyoduk JS'de. ükela ya.
riglous Mesaj tarihi: Nisan 12, 2009 Mesaj tarihi: Nisan 12, 2009 Bak daha da ukalalasiyorum Birileri benden once oturup yapmis. http://www.bildirgec.org/yazi/php-4-icin-simplexml
Öne çıkan mesajlar