Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Öne çıkan mesajlar

Mesaj tarihi:
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
Mesaj tarihi:
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.
Mesaj tarihi:
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
  • 2 hafta sonra ...
Mesaj tarihi:
$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.
Mesaj tarihi:
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.
Mesaj tarihi:
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.
Mesaj tarihi:
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.
Mesaj tarihi:
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);
Mesaj tarihi:
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>
Mesaj tarihi:
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('
Mesaj tarihi:
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.
Mesaj tarihi:
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.
Mesaj tarihi:
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.
×
×
  • Yeni Oluştur...