• 10-07-2010, 17:19:10
    #1
    Merhaba Arkadaşlar,
    Ben Rss İle Aldığım Haberleri Kategori Halinde listeleme de problem yaşıyorum.
    Elimde
    Acces Vtye Kategoriler Adında Tablo ve ID - Kategori - RssAdresi adlarında da Sutunlar var.Bunların değeri Örneğin;

    ID Kategori RssAdresi
    1 Guncel /rss/guncel.xml
    2 Politika /rss/politia.xml
    3 Ekonomi /rss/ekonomi.xml


    Şeklinde veriler listeleniyor...Her Xml Sayfasında ise 20'er adet kayıt mevcut.

    Ben ise xml sayfalarında bulunan kayıtlardan ilk 6 'sını ve ilk haberin de resimli olarak listelenmesini istiyorum.Yani xml sayfalarından listelenen 6 haberden ilki resimli diğerleri ise sadece başlık olacak.Kullandığım kod aşağıdaki gibidir.

    Lsitelemede sıkıntı var ilk 6 kaydı listelemek istiyorum xml sayfasında bulunan bütün veriler listeleniyor fakat kullandığım for döngüsü her haberi ilki resimli olmak üzere 6 defa listeliyor.Yardımcı olursanız sevinirim

    Selam ve Dua İle..

    <!--#Include File="baglanti.asp"-->
    <%
    Set aRs = Server.Createobject("Adodb.Recordset")
    SQL="SELECT * From Kategoriler  ORDER BY ID ASC"
    aRs.Open SQL,Baglanti,1,3
    Do While Not aRs.EOF
    %>
    <div style="background-color: #efefef; float: left; margin:2px; width:340px">
                                            <table width="100%" border="0" cellpadding="5" cellspacing="1" 
     
    style="height:100%;">
                                            <tr>
                                                <td height="15" bgcolor="#FFFFFF">
    											<strong><a title="<%=strTitle%>" href="/haberler/<%=aRs("ID")%>/<%=MakeLink(aRs("Kategori"))%>-haberleri.html"><%=aRs("Kategori")%> Haberleri</a></strong></td>
                                            </tr>
                                            <tr>
                                                <td valign="top" bgcolor="#FFFFFF">
                                                 <table border="0" width="100%" cellpadding="0" style="border-collapse: collapse" id="table2">
    
    <%
       
    rssfile = ""&aRs("Rss")&""
    	
    			Dim objXML, objRoot, objItems
     
    			Set objXML = Server.CreateObject("Microsoft.XMLDOM")
    			objXML.Async = False
    			objXML.SetProperty "ServerHTTPRequest", True
    			objXML.ResolveExternals = True
    			objXML.ValidateOnParse = True
    			objXML.Load(rssFile)
     
    						On Error Resume Next
     
    				If (objXML.parseError.errorCode = 0) Then
    							Set objRoot = objXML.documentElement
    								If IsObject(objRoot) = False Then
    								response.Write  "<tr><td>Bilgiler Getirilemiyor</td></tr>"
    								'exit sub
    								End If
    				
    				Set objItems = objRoot.getElementsByTagName("item")
    								If IsObject(objItems) = True Then
    					Dim objItem
    					For Each objItem in objItems
    
    i=i+1
    for i = 1 to 6
    
                           
    						strBaslik = objItem.selectSingleNode("title").Text
    						strDesc = objItem.selectSingleNode("description").Text
    						strLink = objItem.selectSingleNode("link").Text
    					    strRes = objItem.selectSingleNode("image").Text
    
    
    IF i=1 Then
    %>
    Resimli haberin kodları(1 Adet)
    
    <%Else%>
    
    Resimsiz Haberler (5 Kayıt)
    
    <%
    End IF
    MoveNext : Next
    		Next
    		
    							else
    							response.Write  "<tr><td>Sistem Hatası Oluştu.Lütfen Sayfayı Yenileyiniz.</td></tr>"
    														
    				End If
    				Set objRoot = Nothing
    				Set objItems = Nothing
    			End If
     
    			Set objXML = Nothing
    %>
    
    <%
    aRs.MoveNext : Loop
    aRs.Close : Set aRs = Nothing
    %>
  • 10-07-2010, 18:46:32
    #2
    Üyeliği durduruldu
    For Each objItem in objItems --- altına; i = i +1
    next --- satırının üzerine: if i = 6 then response.end

    Bunlar ile en üstten 6 haberi çekebilirsin. Örnek olarak ntvmsnbc için:

    <%
    Dim objXML, objRoot, objItems
    Set objXML = Server.CreateObject("Microsoft.XMLDOM")
    objXML.Async = False
    objXML.SetProperty "ServerHTTPRequest", True
    objXML.ResolveExternals = True
    objXML.ValidateOnParse = True
    objXML.Load("http://www.ntvmsnbc.com/id/24927361/device/rss/rss.xml")
    If (objXML.parseError.errorCode = 0) Then
    Set objRoot = objXML.documentElement
    If IsObject(objRoot) = False Then
    response.write "<li>Connection Error!"
    End If
    Set objItems = objRoot.getElementsByTagName("item")
    If IsObject(objItems) = True Then
    For Each objItem in objItems
    i = i +1
    link = objItem.selectSingleNode("link").Text
    description = objItem.selectSingleNode("description").Text
    %>  
    
    <%=description%><br>
    
    <%
    if i = 8 then response.end
    Next
    else
    response.write "<li>Connection Error!"
    End If
    Set objItems = Nothing
    Set objRoot = Nothing
    End If
    Set objXML = Nothing
    %>


    Ayrıca ilki resimli, diğerleri resimsiz olsun dediğin şeyi ne amaçla kullanacaksın? Daha pratik bir yolu vardır belki.. Yazdığın şekilde, for döngüsünün içerisine ne koyarsan listeletmek istediğin kadar içerisindekilerde çoğalır
  • 10-07-2010, 20:47:16
    #3
    if i = 6 then response.end kodu sayfanın alt kısmının görünmesini engeller response.end kullanıldığı için yani yazmayı sonlandırıyor.

    20 kayıt olan xml verileri resimsiz listeleyebiliyorum kukarıda kullandığım kodu kullandığımda ise ilk her kaydı ilki resimli olmk üzere 6 defa listeliyor bu durumda kayıt sayısı 20 olan xml sayfasının çıktısı 6*20 = 120 oluyor.

    Bense 20 Kayıttan ilki resimli olmak üzere sadece 6 tanesini listelemk istiyorum.

    Şimdiden teşekkürler...
  • 10-07-2010, 21:17:59
    #4
    Üyeliği durduruldu
    Split kullanarak yapılabilir herhalde.. Siz çekmek istediğiniz siteyi yazarsanız istediğiniz şeyi yapmaya çalışırım.
  • 14-07-2010, 19:59:58
    #5
    Haberleri Almak istediğim site http://bugun.com.tr/haber/sitenehaberekle.aspx bu safadaki rss haberler.Yalnız kategori isimlerini ben veritabanında oluşturmuşum.Veritabanındaki kategori isimleri ve rss adreslerini kaydetmişim o şekilde listeleme yapmak istiyorum.İlki resimli olmak üzere sadece ilk 6 kayıt olacak.
  • 18-07-2010, 12:39:12
    #6
    Bu konuda yardımcı olabilecek kimse yok mu acaba.Gerçekten buna ihtiyacım var