Üyelik Tarihi: 29.02.2008
Yer: istanbul
Yaş: 28
Mesaj: 6
|
Re: rss bilgi çekme sorunu
<% @LANGUAGE="VBSCRIPT" CODEPAGE="1254" %>
<%
Option Explicit
Response.Expires=-1
Response.Buffer=True
Dim BaslamaZamani
BaslamaZamani=Timer
set conn = server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source="&server.MapPath("database.mdb")&""
%>
<%
Session.Codepage=1254
'response.CharSet = "iso-8859-9"
Session.LCID = "1055"
%>
<%
Dim XMLDoc, KaynakURL
Dim Nodeler
Dim xI, yI
Dim KaynakTaglar
Dim Taglar
Dim TagAdi, TagText
Dim Baslik, rsssx,siteidx,rsss,Metin, URL, Tarih, Yazan, fiyat, para, resim, conn,rscntrl,rs,rscntrl2,rscntrl3,degisiklik,fiyatdb,rsu,durum,rssite,rsssite
Sub KaynakTagAl()
Set Nodeler=XMLDoc.SelectSingleNode("//channel").childNodes
For xI=0 To Nodeler.Length-1
TagAdi=Nodeler.Item(xI).TagName
If TagAdi<>"item" And TagAdi<>"image" Then KaynakTaglar=KaynakTaglar & TagAdi & " "
Next
Response.Write KaynakTaglar & "<br>"
KaynakTaglar=Split(Trim(KaynakTaglar)," ")
Set Nodeler=Nothing
End Sub
Sub Yerlestir (pTagText,pNo)
Select Case Taglar(pNo)
Case "title"
Baslik=pTagText
Case "pubDate"
Tarih=pTagText
Case "link"
URL=pTagText
Case "description"
Metin=pTagText
Case "author"
Yazan=pTagText
Case "price"
fiyat=pTagText
Case "currency"
para=pTagText
Case "images"
resim=pTagText
End Select
End Sub
'KaynakURL=Request("kaynak")
set rssite = server.CreateObject("ADODB.RecordSet")
rssite.open "select * from site where durum='1' order by site DESC" , conn , 1,3
while not rssite.EOF
Response.Flush
KaynakURL = rssite("siterss")
Set XMLDoc=server.CreateObject("MSXML.DOMDocument")
XMLDoc.Async=False
XMLDoc.SetProperty "ServerHTTPRequest", True
XMLDoc.Load(KaynakURL)
If XMLDoc.ParseError.ErrorCode<>0 then
Response.Write "<tr class=ghucre><td>"
Response.Write "<br>RSS işlenirken hata oluştu.<br><br>"
Response.Write XMLDoc.ParseError.ErrorCode & "<br>"
Response.Write XMLDoc.ParseError.Reason & "<br>"
'Response.Write XMLDoc.ParseError.Line & "<br>"
'Response.Write XMLDoc.ParseError.SrcText & "<br>"
Response.Write XMLDoc.ParseError.Url & "<br>"
Response.Write "</td></tr>"
Else
Set Nodeler=XMLDoc.SelectSingleNode("//channel/item").childNodes
'Response.Write Nodeler.Length & "<br><br><br>"
For xI=0 To Nodeler.Length-1
TagAdi=Nodeler.Item(xI).TagName
Taglar=Taglar & TagAdi & " "
'Response.Write TagAdi & "<br>"
Next
'Response.Write Taglar & "<br>"
Taglar=Split(Trim(Taglar)," ")
'Response.Write UBound(Taglar)
Set Nodeler=Nothing
Set Nodeler=XMLDoc.SelectNodes("//channel/item")
For xI=0 To Nodeler.Length-1
Baslik="-"
Metin="-"
URL="-"
Tarih="-"
Yazan="-"
For yI=0 To UBound(Taglar)
TagText=Nodeler.Item(xI).childNodes.Item(yI).Text
Yerlestir TagText,yI
Next
set rscntrl = server.CreateObject("ADODB.RecordSet")
rscntrl.open "select * from urun where urunadresi='" &url& "' AND urunadi='"&baslik&"'" , conn , 1,3
if not rscntrl.EOF then
durum = 1
if rscntrl("urunfiyatidegisiklik") = "" or rscntrl("urunfiyatidegisiklik") = "0" or rscntrl("urunfiyatidegisiklik") = 0 then
degisiklik = 0
else
degisiklik = rscntrl("urunfiyatidegisiklik")
end if
fiyatdb=fiyat&" "¶
if fiyatdb <> rscntrl("urunfiyati") then
set rsu = server.CreateObject("ADODB.RecordSet")
rsu.open "select * from urun where urun=" &rscntrl("urun") , conn , 1,3
if not rsu.eof then
rsu("urunfiyationceki") = rscntrl("urunfiyati")
rsu("urunfiyati") = fiyatdb
rsu("urunfiyatidegisiklik") = rsu("urunfiyatidegisiklik") + 1
degisiklik = rsu("urunfiyatidegisiklik") + 1
rsu("sponsor") = rssite("sponsor")
rsu("urunsaat") = Hour(time)
rsu("urundakika") = Minute(time)
rsu("urungun")=Day(date)
rsu("urunay")=Month(date)
rsu("urunyil") =Year(date)
siteidx=rsu("siteid")
rsu.update
set rsu = nothing
set rsssx = server.CreateObject("ADODB.RecordSet")
rsssx.open "select * from site where site="&siteidx&"" , conn , 1,3
rsssx.update
rsssx("guncellenmetarihi") = now()
rsssx.update
end if
end if
else
set rs = server.CreateObject("ADODB.RecordSet")
rs.open "urun" , conn , 1 , 3
rs.addnew
rs("urunadi") = baslik
rs("urunresmi") = resim
rs("urunaciklamasi") = metin
rs("urunfiyati") = fiyat&" "¶
rs("urunsaat") = Hour(time)
rs("urundakika") = Minute(time)
rs("urungun")=Day(date)
rs("urunay")=Month(date)
rs("urunyil") =Year(date)
rs("urunadresi") = url
rs("urunfiyatidegisiklik") = 0
rs("eklenmetarihi") = now()
rs("siteid") = rssite("site")
rs("sponsor") = rssite("sponsor")
rs.update
set rs = nothing
set rsss = server.CreateObject("ADODB.RecordSet")
rsss.open "select * from site where site="&rssite("site")&"" , conn , 1,3
rsss.update
rsss("guncellenmetarihi") = now()
rsss.update
end if
Response.Flush
Next
Set Nodeler=Nothing
rscntrl.close
set rscntrl = nothing
End If
Set XMLDoc=Nothing
fiyatdb=""
durum=""
baslik=""
resim=""
metin=""
fiyat=""
para=""
tarih=""
url=""
Taglar=""
rssite.MoveNext
wend
rssite.close
set rssite = nothing
conn.close
set conn=nothing
Response.Write "<p align=center>Bu sayfa " & Left(Timer-BaslamaZamani,5) & " saniyede tamamlandı.</p></body></HTML>"
%>
RSS/ XML kaynağından yukarıdaki kodla bilgi çekiyorum fakat aşağıdaki formatta olmak zorunda yoksa bilgi çekemiyorum.
<? XML version="1.0" encoding="ISO-8859-9" standalone="yes"?>
<channel>
<item>
<title></title>
<link></link>
<description></description>
<price></price>
<currency></currency>
<images>images>
</item>
</channel>
Her site aynı şablonu kullanmadığından bilgi çekerken sorun yaşıyorum
Mesela
<description></description> eksik olduğunda yada encoding="ISO-8859-9" olmadığında bile bilgi çekmioyor.
Bunu nasıl çözebilirim
|