xml alt başlık çekmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
doktoraltun
Üye
Mesajlar: 73
Kayıt: 06 Oca 2012 06:56

xml alt başlık çekmek

Mesaj gönderen doktoraltun »

s.a arkadaşlar ufacık bir sorunum var bilgi sahibi olan arkadaşlar yardımcı olabilirmi acaba.
sorunum şudur youtube xml verisini

Kod: Tümünü seç

<entry gd:etag='W/"CEICSH47eCp7I2A9WhNUFUU."'><id>tag:youtube.com,2008:video:LC0bOcaQ8ms</id><published>2006-11-13T22:37:59.000Z</published><updated>2013-01-07T18:16:09.000Z</updated><category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/><category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='Music' label='Müzik'/><title>Mahsun Kirmizigul Belalim</title><content type='application/x-shockwave-flash' src='http://www.youtube.com/v/LC0bOcaQ8ms?version=3&f=videos&app=youtube_gdata'/><link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=LC0bOcaQ8ms&feature=youtube_gdata'/><link rel='http://gdata.youtube.com/schemas/2007#video.responses' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/LC0bOcaQ8ms/responses?v=2'/><link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/LC0bOcaQ8ms/related?v=2'/><link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' href='http://m.youtube.com/details?v=LC0bOcaQ8ms'/><link rel='http://gdata.youtube.com/schemas/2007#uploader' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/LXCSPhvofGx0xMa-2r8weQ?v=2'/><link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/LC0bOcaQ8ms?v=2'/><author><name>miear</name><uri>http://gdata.youtube.com/feeds/api/users/miear</uri><yt:userId>LXCSPhvofGx0xMa-2r8weQ</yt:userId></author><yt:accessControl action='comment' permission='allowed'/><yt:accessControl action='commentVote' permission='allowed'/><yt:accessControl action='videoRespond' permission='moderated'/><yt:accessControl action='rate' permission='allowed'/><yt:accessControl action='embed' permission='allowed'/><yt:accessControl action='list' permission='allowed'/><yt:accessControl action='autoPlay' permission='allowed'/><yt:accessControl action='syndicate' permission='allowed'/><gd:comments><gd:feedLink rel='http://gdata.youtube.com/schemas/2007#comments' href='http://gdata.youtube.com/feeds/api/videos/LC0bOcaQ8ms/comments?v=2' countHint='5294'/></gd:comments><media:group><media:category label='Müzik' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Music</media:category><media:content url='http://www.youtube.com/v/LC0bOcaQ8ms?version=3&f=videos&app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='273' yt:format='5'/><media:content url='rtsp://v6.cache7.c.youtube.com/CiILENy73wIaGQlr8pDGORstLBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='273' yt:format='1'/><media:content url='rtsp://v6.cache7.c.youtube.com/CiILENy73wIaGQlr8pDGORstLBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='273' yt:format='6'/><media:credit role='uploader' scheme='urn:youtube' yt:display='miear'>miear</media:credit><media:description type='plain'>Belalim</media:description><media:keywords/><media:license type='text/html' href='http://www.youtube.com/t/terms'>youtube</media:license><media:player url='http://www.youtube.com/watch?v=LC0bOcaQ8ms&feature=youtube_gdata_player'/><media:thumbnail url='http://i.ytimg.com/vi/LC0bOcaQ8ms/default.jpg' height='90' width='120' time='00:02:16.500' yt:name='default'/><media:thumbnail url='http://i.ytimg.com/vi/LC0bOcaQ8ms/mqdefault.jpg' height='180' width='320' yt:name='mqdefault'/><media:thumbnail url='http://i.ytimg.com/vi/LC0bOcaQ8ms/hqdefault.jpg' height='360' width='480' yt:name='hqdefault'/><media:thumbnail url='http://i.ytimg.com/vi/LC0bOcaQ8ms/1.jpg' height='90' width='120' time='00:01:08.250' yt:name='start'/><media:thumbnail url='http://i.ytimg.com/vi/LC0bOcaQ8ms/2.jpg' height='90' width='120' time='00:02:16.500' yt:name='middle'/><media:thumbnail url='http://i.ytimg.com/vi/LC0bOcaQ8ms/3.jpg' height='90' width='120' time='00:03:24.750' yt:name='end'/><media:title type='plain'>Mahsun Kirmizigul Belalim</media:title><yt:duration seconds='273'/><yt:uploaded>2006-11-13T22:37:59.000Z</yt:uploaded><yt:uploaderId>UCLXCSPhvofGx0xMa-2r8weQ</yt:uploaderId><yt:videoid>LC0bOcaQ8ms</yt:videoid></media:group><gd:rating average='4.8391833' max='5' min='1' numRaters='9259' rel='http://schemas.google.com/g/2005#overall'/><yt:statistics favoriteCount='0' viewCount='9541155'/><yt:rating numDislikes='372' numLikes='8887'/></entry>
şeklinde alıyorum bunun içinden Şu şekilde id ve titleyi alıyorum

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject); 
var i:integer; 
begin 
listbox1.Clear; 
listbox2.Clear; 
panel1.visible:=false; 
panel2.visible:=false; 
   if kontrol=0 then 
   begin 
      XMLDocument1.Active:=false; 
      XMLDocument1.FileName:='http://gdata.youtube.com/feeds/api/videos?v=2&max-results=50&q='+tkd(edit1.Text)+'&safeSearch=moderate&oi=spell&start-index=1&spell=1'; 
      XMLDocument1.Active:=true; 
   end; 
   i:=1; 
   baslangic:=XMLDocument1.DocumentElement.ChildNodes.FindNode('entry'); 
   repeat 
      adres:=baslangic.ChildNodes['id'].Text; 
      adi:=baslangic.ChildNodes['title'].Text; 
      yadres:=StringReplace(adres, 'tag:youtube.com,2008:video:', '',  [rfReplaceAll]); 
      i:=i+1; 
      ListBox1.Items.Add(adi); 
      ListBox2.Items.Add(yadres); 
      listbox3.items.Add(hit); 
     baslangic:=baslangic.NextSibling; 
   Until baslangic=nil; 
   end;  

Benim Amacım xml dosyasındaki

Kod: Tümünü seç

<yt:duration seconds='273'/> 
kodu listbox3e sıralamak ama bir turlu alamadım listeye boş satırlar eklenıyor.
doktoraltun
Üye
Mesajlar: 73
Kayıt: 06 Oca 2012 06:56

Re: xml alt başlık çekmek

Mesaj gönderen doktoraltun »

arkadaşlar 2 gundur bekliyorum biri yazsın lütfen diye site boşalmış galiba
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: xml alt başlık çekmek

Mesaj gönderen SimaWB »

Vermiş olduğunuz XML verisini bir dosyaya yazıp XMLDocument ile açmak istediğimde hata veriyor. Daha açma işlemini bile yapamadığım için sizin bahsettiğiniz problem kısmına gelemedim.
There's no place like 127.0.0.1
doktoraltun
Üye
Mesajlar: 73
Kayıt: 06 Oca 2012 06:56

Re: xml alt başlık çekmek

Mesaj gönderen doktoraltun »

Kusura bakma hocam kodun sadece bir kısmını eklemişim size link adresini ve programdaki kod kısmını hemen yazayım

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
listbox1.Clear;
listbox2.Clear;
panel1.visible:=false;
panel2.visible:=false;
   if kontrol=0 then
   begin
      XMLDocument1.Active:=false;
      XMLDocument1.FileName:='http://gdata.youtube.com/feeds/api/videos?v=2&max-results=50&q='+tkd(edit1.Text)+'&safeSearch=moderate&oi=spell&start-index=1&spell=1';
      XMLDocument1.Active:=true;
   end;
   i:=1;
   baslangic:=XMLDocument1.DocumentElement.ChildNodes.FindNode('entry');
   repeat
      adres:=baslangic.ChildNodes.Nodes['id'].Text;
      adi:=baslangic.ChildNodes.Nodes['title'].Text;
      yadres:=StringReplace(adres, 'tag:youtube.com,2008:video:', '',  [rfReplaceAll]);
      i:=i+1;
      ListBox1.Items.Add(adi);
      ListBox2.Items.Add(yadres);
     baslangic:=baslangic.NextSibling;
   Until baslangic=nil;
   end;
burda listbox1 ve 2 ile adres ve titleyi çekiyorum bana time lazim listedeki şarkıları timer ile çekmiş olduğum time değerine göre bir sonraki satırı tıklatmak için yani oda şöyle olacak

Kod: Tümünü seç

listbox1.itemindex:=listbox1.itemindex+1;
listbox1click(self);
uzun süredir çözemediğim bir şey :) ısrarım yüzünden kusura bakmayın.
doktoraltun
Üye
Mesajlar: 73
Kayıt: 06 Oca 2012 06:56

Re: xml alt başlık çekmek

Mesaj gönderen doktoraltun »

Delphi Duayenleri Cevap Yazmadıklarına Göre Zor bir soru sormuşum sanırım.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: xml alt başlık çekmek

Mesaj gönderen SimaWB »

XML'de NameSpace ve Prefix özelliklerini araştırmanızı tavsiye ederim.

Şu şekilde sorununuzu çözebilirsiniz:

Kod: Tümünü seç

  ytURI := XMLDoc.DocumentElement.FindNamespaceURI('yt');
  mediaURI := XMLDoc.DocumentElement.FindNamespaceURI('media');
  StartNode := XMLDoc.DocumentElement.ChildNodes.FindNode('entry');
  while StartNode <> nil do
  begin
    mediaNode := StartNode.ChildNodes.FindNode('group', mediaURI);
    if mediaNode <> nil then
    begin
      durationNode := mediaNode.ChildNodes.FindNode('duration', ytURI);
      if durationNode <> nil then
      begin
        if durationNode.HasAttribute('seconds') then
          ListBox1.Items.Add(durationNode.Attributes['seconds']);
      end;
    end;
    StartNode := StartNode.NextSibling;
  end;
There's no place like 127.0.0.1
Cevapla