Delphi XML Parse Sorunsalı ( Yardım)
-
Elimde şöyle bir XML dosyası var delphi ile buradan veri çekmem lazım sadece Feed bölümlerini alabiliyorum sabahtran beri çıldırıcağım <entry> lerdeki nasıl çekerim bilen birileri bi yardım etsin :\
https://imagizer.imageshack.us/v2/1145x624q90/835/2dne.png
-
Hocam ben de delirmiştim, pek örnek de yok piasada.
Yarına atayım sana ufak xmlli bi projem vardı
-
HolyOne bunu yazdı
Hocam ben de delirmiştim, pek örnek de yok piasada.
Yarına atayım sana ufak xmlli bi projem vardı
çok makbule geçer çok teşekkür eder duada ederim
-
http://stackoverflow.com/questions/9282370/xml-parsing-txmldocument
https://code.google.com/p/omnixml/downloads/list
şunlara bakarmısın bi hocam
-
TeRRoR bunu yazdı
http://stackoverflow.com/questions/9282370/xml-parsing-txmldocument
https://code.google.com/p/omnixml/downloads/list
şunlara bakarmısın bi hocam
hocam teşekkür ederim bunlar geçti elimden ama ingilizcem yok okuyup anlamam lazım açıklamaları amatörüm ben delphide
-
delphi'de amatörüm demişsin de, gene de önereyim
regex kullanmayı denedin mi?
-
Daft bunu yazdı
delphi'de amatörüm demişsin de, gene de önereyim
regex kullanmayı denedin mi?
Hocam teşekkür ederim ancak bu dahada karmaşık geldi bana.
özetlemek gerekirse : http://saraylimetal.com/zamantuneli/ linkindeki verileri çekmem lazım, bi proje için alt yapı hazırlıyorum ancak kısıtlı bilgiye sahibim yardımcı olmaya çalıştığınız için tekrar teşekkür ederim. Ve Holyone şehimizin göndereceği örneği merakla beklemekteyim. Ben yapabilirim diyenlerde olursa bana sadece <entry> </entry> arası lazım onları çeke bilecek kod örneğini gösterirselerde sevinirim istediğim sadece örnek.
-
XML den usd çıkaran bişeyi böyle yazmıştım belki işine yarar örnek olur
procedure TForm1.Button2Click(Sender: TObject); var i, kontrol: integer; isim, alis, satis, balis, bsatis, euro: WideString; satir, sutun: integer; baslangic: IXMLNode; usdval: String; begin kontrol := 0; try if kontrol = 0 then begin XMLDocument1.Active := false; XMLDocument1.FileName := 'http://www.tcmb.gov.tr/kurlar/today.xml'; XMLDocument1.Active := true; end; i := 1; baslangic := XMLDocument1.DocumentElement.ChildNodes.FindNode('Currency'); repeat isim := baslangic.ChildNodes.Nodes['Isim'].Text; alis := baslangic.ChildNodes.Nodes['ForexBuying'].Text; satis := baslangic.ChildNodes.Nodes['ForexSelling'].Text; balis := baslangic.ChildNodes.Nodes['BanknoteBuying'].Text; bsatis := baslangic.ChildNodes.Nodes['BanknoteSelling'].Text; euro := baslangic.ChildNodes.Nodes['CrossRateEuro'].Text; { StringGrid1.Cells[0,i]:=isim; StringGrid1.Cells[1,i]:=alis; StringGrid1.Cells[2,i]:=satis; StringGrid1.Cells[3,i]:=balis; StringGrid1.Cells[4,i]:=bsatis; StringGrid1.Cells[5,i]:=euro; } i := i + 1; baslangic := baslangic.NextSibling; if (isim = 'AMERİKAN DOLARI') then begin usdval := bsatis; break; end; Until baslangic = nil; if (usdval <> '') then begin if(sender<>nil) then showmessage('USD fiyatı güncellendi'); Edit2.Text := (usdval); end; except Edit2.Text := '0'; showmessage('Dolar fiyatı alınamadı. manuel olarak giriniz.'); end; if (Sender <> nil) then updategtoplam; end; -
Bu da xml okyan bi kodum
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <urunler indirimyuzde="0" bayidefaultkomisyon="0" yillikfiyatyuzde="39"> <urun id="1" name="Client" desc="Personel bilgisayarlarına kurulan modül" birimfiyat="39" group="Standard"/> <urun id="2" name="Admin" desc="Yönetici bilgisayarına kurulan yazılım" birimfiyat="149" group="Standard" /> <urun id="3" name="Ana kullanım" birimfiyat="399" group="Standard" /> <urun id="5" name="Client" desc="Personel bilgisayarlarına kurulan modül" birimfiyat="50" group="Professional"/> <urun id="6" name="Admin" desc="Yönetici bilgisayarına kurulan yazılım" birimfiyat="150" group="Professional" /> <urun id="7" name="Ana kullanım" birimfiyat="500" group="Professional" /> <urun id="4" name="Eğitim" birimfiyat="0" miktar="1" /> </urunler>
procedure TForm1.Button3Click(Sender: TObject); var i, kontrol: integer; desctxt, idstr, nametxt, birimfiyattxt, disabledtxt: WideString; u: Turun; StartItemNode, ANode: IXMLNode; usdval, fn: String; strs: tstringstream; grp,engname,engdesc:string; begin ComboBox1.Items.Clear; dic.clear; // XMLDocument2.Active := false; // XMLDocument2.FileName := ; // XMLDocument2.Active := true; fn := apppath + 'Fiyatlar.xml'; if (not fileexists(fn)) then begin showmessage('Fiyatlar.xml dosyası bulunamadı'); exit; end; // XMLDocument2.Encoding:= tencoding.UTF8; strs := tstringstream.Create('', Tencoding.UTF8); strs.LoadFromFile(fn); // showmessage(strs.DataString); strs.Seek(0, tseekorigin.soBeginning); XMLDocument2.LoadFromXML(strs.DataString); // XMLDocument2.LoadFromStream( strs, TXMLEncodingtype.xetUTF_8); // XMLDocument2.LoadFromFile(fn); // XMLDocument2.Encoding:='utf8'; indirimyuzde := 0; bayidefaultkomisyon := 25; yillikfiyatyuzde := 40; indirimyuzde := strtoint2(XMLDocument2.DocumentElement.Attributes ['indirimyuzde']); bayidefaultkomisyon := strtoint2(XMLDocument2.DocumentElement.Attributes ['bayidefaultkomisyon']); yillikfiyatyuzde := strtoint2(XMLDocument2.DocumentElement.Attributes ['yillikfiyatyuzde']); Edit3.Text := inttostr(bayidefaultkomisyon); yillikfiyatibare := 'Yıllık lisans bedelleri aşşağıdaki gibidir.'; edit4.Text:=inttostr(indirimyuzde); StartItemNode := XMLDocument2.DocumentElement.ChildNodes.FindNode('urun'); ANode := StartItemNode; repeat idstr := UTF8Decode(ANode.Attributes['id']); if (ANode.HasAttribute('name')) then nametxt := (ANode.Attributes['name']) else nametxt := ''; if (ANode.HasAttribute('engname')) then engname := (ANode.Attributes['engname']) else engname := ''; if (ANode.HasAttribute('engdesc')) then engdesc := (ANode.Attributes['engdesc']) else engdesc := ''; if (ANode.HasAttribute('desc')) then desctxt := (ANode.Attributes['desc']) else desctxt := ''; if (ANode.HasAttribute('birimfiyat')) then birimfiyattxt := (ANode.Attributes['birimfiyat']) else birimfiyattxt := ''; if (ANode.HasAttribute('group')) then grp := (ANode.Attributes['group']) else grp := ''; if (ANode.HasAttribute('disabled')) then disabledtxt := lowercase(ANode.Attributes['disabled']); u.id := strtoint(idstr); u.desc := desctxt; u.name := nametxt; u.birimfiyat := strtoint2(birimfiyattxt); u.miktar := 1; u.group:= grp; u.disabled := false; if(grp<>'') then if(combobox4.Items.IndexOf(grp)<0) then begin combobox4.Items.Add(grp); if(combobox4.Items.Count=1) then combobox4.ItemIndex:=0; end; if (disabledtxt = 'true') then u.disabled := true; if((sametext(grp,combobox4.Items[combobox4.ItemIndex])) or (grp='')) then begin ComboBox1.Items.Add(u.name); dic.Add(nametxt, u); end; ANode := ANode.NextSibling; until ANode = nil; end; -
delphide regex yok mu hocam? onunla alabilirsin?
-
Eyvalah işimi çok güzel gördü teşekkür ediyorum Şeyh
