این سورس که گذاشتم ار اس اس یک سایت رو میگیره اما فقط موضوعات رو میگیره من میخواهم طوری باشه که فقط مصالب ارسال شده یهنی همون اخبار رو بگیره حالا یک تست کنید متوجه میشوید
http://up.iranblog.com/6/1262283560.rar
Printable View
این سورس که گذاشتم ار اس اس یک سایت رو میگیره اما فقط موضوعات رو میگیره من میخواهم طوری باشه که فقط مصالب ارسال شده یهنی همون اخبار رو بگیره حالا یک تست کنید متوجه میشوید
http://up.iranblog.com/6/1262283560.rar
در مورد ساختمان RSS بهتره يكم تحقيق كنيد
Set rss = CreateObject("msxml2.domdocument")
rss.async = False
rss.Load ("http://www.farsnews.com/rss/")
List1.Clear
Me.Refresh
Set myItem = rss.getElementsByTagName("item")
For I = 0 To myItem.length - 1
List1.AddItem myItem(I).getElementsByTagName("description").Item(0).firstChild.nodeValue
Next I
این که همونه
من میخوام که وقتی رو موضوع کلید می کنید به (متن برسید یا به صفحه اصلی در اینترنت)
http://www.aftab.ir/articles/compute...754_xml_p1.php
rss از زبان xml تشكيل شده كه همانند html از تگ درست شده
در فيد سايتها مهمترين اطلاعات لينك مطلب،توضيح،عنوان،دسته،تار يخ هستند
فيدها با كدهايي مثله نمونه زير آغاز ميشن كه براي ما برنامه نويسهاي تحت ويندوز كاربردي نداره (مگر در موارد خاص)
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>برنامه ها</title>
<atom:link href="http://www.barnameha.ir/feed" rel="self" type="application/rss+xml" />
<link>http://www.barnameha.ir</link>
<description>برنامه هاي فارسي</description>
<lastBuildDate>Mon, 08 Mar 2010 21:07:24 +0000</lastBuildDate>
<generator>http://wordpress.org/?v=2.9.2</generator>
<language>fa</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
اما مطالب با تگ <item> شروع ميشن
پس ما بايد داخل اين تگ بخونيم
اگر به كد بالا توجه كنيد خروجي اين كد آرايه اي از آيتمها است
<item>
'Info
</item>
تگ
<title> عنوان </title>
براي نگهداري عنوان هست
پس ما در صورتي كه بخواهيم عنوان رو بخونيم
كد اين طوري ميشه:
List1.AddItem myItem(I).getElementsByTagName("title").Item(0).fi rstChild.nodeValue
نمونه تگهاي ديگر:
link = لينك مطلب
comments = آدرس صفحه كامنت (در صورت وجود)
pubDate = تاريخ (نام قالبش رو فراموش كردم، ميلادي هست. حتي اگر سايت تاريخش شمسي باشه)
Mon, 08 Mar 2010 20:50:10 +0000
dc:creator = توليد كننده (مدير، نام كاربري فرستنده)
category = دسته مطلب
description = توضيحات مطلب
wfw:commentRss = خروجي فيد كامنت مطلب
در نهايت بسته شد آيتم </item>
نتيجه اگر بخواهيم هر بخش رو بخونيم بايد تگ اون رو در كد جايگزين كنيم
مثلا شما تمام اطلاعات رو در آرايه مخصوص به خودش بريزيد
و زماني كاربر رو اندكس 5 ليست باكس كليك كرد، اطلاعات اون ايندكس رو كه در آراياه هاي ديگر هم هست استفاده كنيد
ترجيح ميدم پروژه اي نزارم
كد بالا رو در لود برنامه بزاريد
يك ليست باكس
نتيجه: شما ليست مطالب رو با اجرا كردن داريد
Private Sub Form_Load()
Set rss = CreateObject("msxml2.domdocument")
rss.async = False
rss.Load ("http://www.farsnews.com/rss/")
List1.Clear
Me.Refresh
Set myItem = rss.getElementsByTagName("item")
For I = 0 To myItem.length - 1
List1.AddItem myItem(I).getElementsByTagName("description").Item (0).firstChild.nodeValue
List2.AddItem myItem(I).getElementsByTagName("title").Item(0).fi rstChild.nodeValue
Next I
End Sub
Private Sub List2_Click()
Text1.Text = List1.List(List2.ListIndex)
End Sub
دستتون شدیدا درد نکنه ولی اگه RSS یه وبلاگ رو بزاریم تو شرح اطلاعات جایی که باید بره خط بعد </p><p><strong>» نوشته میشه.
برای این مشکل چه راه حلی دارین؟
شما بايد با تگهاي html آشنايي داشته باشيد
مثلا براي <br /> يا <br> بايد تابع خط جديد رو بكار ببريد
Replace(rss,"<br>",vbnewline)
خلاصه: html رو ياد بگيريد