PCnet Online forumlarına katılmak için hesap açabilirsiniz.
  • Üye girişi:

PCnet Online forumlarına hoş geldiniz

+ Başlığa Yanıt Yaz
5 sonuçtan 1 - 5 arası sonuçlar
  1. #1

    Question MSXML2.Domdocument.4.0'da kayıt sayısı.

    Selamlar;

    Bir RSS kaynağından (mesela http://www3.interscience.wiley.com/r...rnal/118532745) MSXML2.Domdocument vasıtası ile verileri çekiyoruz. Lakin tamamını değil de örneğin son 10 kaydı çekmek istiyoruz. Bu bağlamda sanırım Lenght şeklinde bir kullanım var ama bilemiyorum. Bu şekilde bir kullanım yapılmış örnek ya da koddan haberi olan bir arkadaşımız var mı? Kolay gelsin.

  2. #2

  3. #3

    Varsayılan

    Cevap gelmedi ama ben sonunda iyi bir kod bulabildim. Belki birinin işine yarar diyerek eklemek istiyorum buraya.
    Bütün yapılması gereken:
    URLToRSS = Rss kaynağı
    MaxNumberOfItems = Alınacak kayıt sayısı
    şeklinde doldurmak.
    Dikkat edilmesi gereken: Rss kaynağındaki yapı. (Item, title, link vs. bazı Rss kaynaklarında değişik adlandırılıyor. O zaman ona göre kodlarda değişiklik yapılması gerekir.)
    Kolay gelsin.

    Kod:
    <%
    Response.Expires = -1
    
    ' =========== RSS2HTML.ASP for ASP/ASP.NET ==========
    ' copyright 2005-2008 (c) www.Bytescout.com
    ' version 1.27, 17 August 2008
    ' =========== configuration =====================
    ' ##### URL to RSS Feed to display #########
    URLToRSS = "http://www.aquarist.gen.tr/rss.asp?iID=KFEID"
    
    ' ##### max number of displayed items #####
    MaxNumberOfItems = 10
    
    ' ##### Main template constants
    MainTemplateHeader = ""
    MainTemplateFooter = ""
    ' #####
    
    ' ######################################
    Keyword1 = "" ' Keyword1 = "tech" - set non-empty keyword value to filter by this keyword
    Keyword2 = "" ' Keyword1 = "win" - set non-empty keyword value to filter by this 2nd keyword too
    ' #################################
    
    ' ##### Item template.
    ' ##### {LINK} will be replaced with item link
    ' ##### {TITLE} will be replaced with item title
    ' ##### {DESCRIPTION} will be replaced with item description
    ' ##### {DATE} will be replaced with item date and time
    ' ##### {COMMENTSLINK} will be replaced with link to comments (if you use RSS feed from blog)
    ' ##### {CATEGORY} will be replaced with item category
    ItemTemplate = "<a href=""http://www.aquarist.gen.tr""><img src=""../favicon.ico"" border=""0"" style=""vertical-align:middle;""></a> <a href=""{LINK}"">{TITLE}</a><br />{DESCRIPTION}"
    
    ' ##### Error message that will be displayed if not items etc
    ErrorMessage = "Beklenmeyen bir hata oluştu " &URLToRSS & "<BR>Lütfen webmasterınız ile iletişime geçiniz.<br>tolga@aquarist.gen.tr"
    
    ' ================================================
    
    Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
    xmlHttp.Open "GET", URLToRSS, false
    xmlHttp.Send()
    RSSXML = xmlHttp.ResponseText
    
    Set xmlDOM = Server.CreateObject("MSXML2.DomDocument.4.0")
    xmlDOM.async = False
    xmlDOM.validateOnParse = False
    xmlDom.resolveExternals = False
    
    If not xmlDOM.LoadXml(RSSXML) Then
    ErrorMessage = "Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & vbCRLF & ErrorMessage
    End If
    
    Set xmlHttp = Nothing ' clear HTTP object
    
    Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS
    
    RSSItemsCount = RSSItems.Length-1
    
    ' if not <item>..</item> entries, then try to get <entry>..</entry>
    if RSSItemsCount = -1 Then
    Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS
    RSSItemsCount = RSSItems.Length-1
    
    End If
    
    Set xmlDOM = Nothing ' clear XML
    
    
    ' writing Header
    if RSSItemsCount > 0 then
    Response.Write MainTemplateHeader
    End If
    
    j = -1
    
    For i = 0 To RSSItemsCount
    Set RSSItem = RSSItems.Item(i)
    
    ' fix for the issue when a description from a previous item 
    ' is used if current item description is empty provided by George Sexton
    RSSdescription="&nbsp;" 
    RSSCommentsLink="&nbsp;"
    
    for each child in RSSItem.childNodes
    
    Select case lcase(child.nodeName)
    case "title"
    RSStitle = child.text
    case "link"
    If child.Attributes.length>0 Then
    RSSLink = child.GetAttribute("href")
    if (RSSLink <> "") Then
    if child.GetAttribute("rel") <> "alternate" Then
    RSSLink = ""
    End If
    End If
    End If ' if has attributes
    If RSSLink = "" Then
    RSSlink = child.text
    End If
    case "description"
    RSSdescription = child.text
    case "content" ' atom format
    RSSdescription = child.text
    case "published"' atom format
    RSSDate = child.text
    case "pubdate"
    RSSDate = child.text
    case "comments"
    RSSCommentsLink = child.text
    case "category"
    Set CategoryItems = RSSItem.getElementsByTagName("category")
    RSSCategory = ""
    for each categoryitem in CategoryItems
    if RSSCategory <> "" Then
    RSSCategory = RSSCategory & ", "
    End If
    
    RSSCategory = RSSCategory & categoryitem.text
    Next
    End Select
    next
    
    ' now check filter
    If (InStr(RSSTitle,Keyword1)>0) or (InStr(RSSTitle,Keyword2)>0) or (InStr(RSSDescription,Keyword1)>0) or (InStr(RSSDescription,Keyword2)>0) then
    
    j = J+1
    
    if J<MaxNumberOfItems then
    ItemContent = Replace(ItemTemplate,"{LINK}",RSSlink)
    ItemContent = Replace(ItemContent,"{TITLE}",RSSTitle)
    ItemContent = Replace(ItemContent,"{DATE}",RSSDate)
    ItemContent = Replace(ItemContent,"{COMMENTSLINK}",RSSCommentsLink)
    ItemContent = Replace(ItemContent,"{CATEGORY}",RSSCategory)
    
    Response.Write Replace(ItemContent,"{DESCRIPTION}",RSSDescription)
    ItemContent = ""
    RSSLink = ""
    End if
    End If
    Next
    
    ' writing Footer
    if RSSItemsCount > 0 then
    Response.Write MainTemplateFooter
    else
    Response.Write ErrorMessage
    End If
    
    ' Response.End ' uncomment this for use in on-the-fly output
    %>
    En son AloneHeart tarafından düzenlenmiştir: 03.04.2009 06:43

  4. #4

    Varsayılan

    Esasında şimdi vereceğim kod daha iyi gibiydi. Fakat istediğim kadar kaydı çekmeyi bilmediğimden boşa gitti. Daha düzenlenebilir birşeye benziyordu. Yine de bakmakta fayda var.

    Kod:
    <% dim xmlDom, nodeCol, oNode, oChildNode  
    set xmlDom = Server.CreateObject("MSXML2.Domdocument.4.0")  
      
     call xmlDom.setProperty("ServerHTTPRequest", true)  
     xmlDom.async = false  
     call xmlDom.load("http://www.aquarist.gen.tr/rss.asp?iID=KFEID")  
       
     
      set nodeCol = xmlDom.documentElement.selectNodes("channel/item")  
       for each oNode in nodeCol  
        set oChildNode = oNode.selectSingleNode("title")  
         set oChildNode1 = oNode.selectSingleNode("pubDate")
          set oChildNode2 = oNode.selectSingleNode("description") 
            set oChildNode3 = oNode.selectSingleNode("link")
            'Response.Write("<p>" & vbCrLf)
    %>
    <div style="width:400;">
      <dt><a href="<%=oChildNode3.text%>" target="_blank"><%=oChildNode.text%></a></dt>
    
        <dd><%=oChildNode2.text%></dd>
    </div>
    
    <%
    
            'Response.Write("  » " & oChildNode1.text & "<br />" & vbCrLf)  
            'Response.Write("  " & oChildNode2.text & "<br />" & vbCrLf)  
            'Response.Write("  <br />" & vbCrLf)  
            'Response.Write("  <a href=""" & oChildNode3.text & """ target=""_blank"">")  
            'Response.Write("    Link to full article" & vbCrLf)  
            'Response.Write("  </a>" & vbCrLf)  
            'Response.Write("</p>" & vbCrLf)  
    
    next
    
    if not xmlDom.documentElement is nothing then 
    else  
            'Response.Write("<p>" & vbCrLf)  
            Response.Write("  Bir hata oluştu. Lütfen tekrar deneyiniz. (Sayfayı yenileyiniz.)" & vbCrLf)  
            'Response.Write("</p>" & vbCrLf)  
        
     end if  
     %>

  5. #5

    Varsayılan

    Pek ilgilenen olmuyor galiba ama en azından arayan bulsun diye yazayım ben yine de.
    Yukarıda daha önceden vermiş olduğum kodlar ile NTV'den ya da RSS kaynağı olan başka sitelerden haberler çekilebilir. Örnek olarak ben kendi sitemden çektim haberleri. Nasıl göründüğüne aşağıdaki linklerden bakınız.
    İsteğe Bağlı Kayan Bant: http://www.aquarist.gen.tr/haber/ibkhb.asp
    Devamlı Kayan Bant: http://www.aquarist.gen.tr/haber/dkhb.asp
    Yukarı Doğru Kayan Bant: http://www.aquarist.gen.tr/haber/ykhb.asp

    Ayrıca Google Api denen mevzular ile yapılmış bir örnek daha var ki bu daha da güzel. Diğerlerini ben kendim yaptığımdan pek birşeye benzemedi. Bunda NTVMSNBC sitesinden çekiyor haberleri.
    NTVMSNBC Bant http://www.aquarist.gen.tr/haber/haber.htm

    Kolay gelsin.


 

Benzer Başlıklar

  1. Listelenen kayıt sayısı
    callaki tarafından ASP ve ASP.NET forumunda
    Yanıt: 2
    Son Mesaj: 01.08.2007, 12:22
  2. dowland sayısı
    orhanagca tarafından Web ve Grafik Tasarımı forumunda
    Yanıt: 1
    Son Mesaj: 05.02.2007, 19:22
  3. 2005 in ilk sayısı
    basarkaradag tarafından PCnet forumunda
    Yanıt: 24
    Son Mesaj: 27.12.2004, 16:07
  4. download sayısı
    gyne tarafından İnternet, Ağ ve Güvenlik forumunda
    Yanıt: 2
    Son Mesaj: 19.11.2004, 18:07
  5. pc net eylül sayısı
    parlar88 tarafından PCnet forumunda
    Yanıt: 1
    Son Mesaj: 11.11.2004, 12:26