منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف نستخلص الرابط من <a class="any" href="link"
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
كيف نستخلص الرابط من
<a class="any" href="link"
اريد باستخدام htmlagilitypack
-
وجدت لك هذا المثال على السريع.... باستخدام htmlagilitypack
كود :
Dim htmldoc As HtmlDocument = New HtmlDocument()
'htmldoc.Load("abc.html")
htmldoc.LoadHtml("<a class='any' href='http://vb4arb.com/'>منتدى فيجوال بيسك لكل العرب</a>")
For Each link As HtmlNode In htmldoc.DocumentNode.SelectNodes("//a[@href]")
    MsgBox(link.Attributes("href").Value)
Next
سهل جدا ويمكن عملها باكثر من طريقة

ولي يجيد xml يقدر يتعامل معها بالرااحة ، لانها نفس طريقة استخدام مكتبة XmlDocument بالضبط

انا الان ماعندي وقت اكتب امثلة لذلك اعذرني ، ابحث في قوقل بتحصل الكثير
بارك الله بيكم
ومعذورين
اخي الكريم vbnet
الطريقة هذي اعرفها لكن لاحظ وجود عدد اثنين اللي هو class و href لو كان a href فقط يمشي الكود مضبوط لكن والحال هذي ما ضبط معيSad
اتمنى اجد حل لاستبدال روابط showthread.php?555 الى روابط عادية thread-555.html
حاولت بكل الطرق ولم اتمكن من الحل فالمحاولة على منتدى vb4 الخاص بالموقع الحالي
-
إذا كان المقصود وجود روابط كثيرة جرب هذا التعديل
كود :
Dim htmldoc As HtmlDocument = New HtmlDocument()
'htmldoc.Load("abc.html")
htmldoc.LoadHtml("<a class='any' href='http://vb4arb.com/'>منتدى فيجوال بيسك لكل العرب</a><a class='any' href='http://google.com/'>جوجل</a>")

Dim lst As New List(Of String)
For Each link As HtmlNode In htmldoc.DocumentNode.SelectNodes("//a[@href]")
    lst.Add(link.Attributes("href").Value)
Next
MsgBox(Join(lst.ToArray, vbNewLine))
اخي الكريم .. كل هذا جربته
("//a[@href]")
ركز على href بينما المطلوب كل من class و href ولن يتم قنصه .
(03-05-14, 12:15 AM)سعود كتب : [ -> ]اخي الكريم .. كل هذا جربته
("//a[@href]")
ركز على href بينما المطلوب كل من class و href ولن يتم قنصه .

جرب هذا التعديل...... مع حذف ("//a[@href]") واستبدالها بـ("a") فقط
كود :
Dim htmldoc As HtmlDocument = New HtmlDocument()
'htmldoc.Load("abc.html")
htmldoc.LoadHtml("<a class='any1' href='http://vb4arb.com/'>منتدى فيجوال بيسك لكل العرب</a><a class='any2' href='http://google.com/'>جوجل</a>")

Dim hrefs, classs As New List(Of String)
For Each link As HtmlNode In htmldoc.DocumentNode.SelectNodes("a")
    hrefs.Add(link.Attributes("href").Value)
    classs.Add(link.Attributes("class").Value)
Next
MsgBox("hrefs:" & vbNewLine & Join(hrefs.ToArray, vbNewLine))
MsgBox("classes:" & vbNewLine & Join(classs.ToArray, vbNewLine))
اخي لو بسطت السؤال كان احسن

هل تريد جلب عنصر بالاعماد على الClass ؟

اذا كان هذا ماتريده فذلك بسيط ايضا وكما قلت يمكن ذلك بأكثر من طريقة ، ابسطها :

PHP كود :
Dim htmldoc As New HtmlAgilityPack.HtmlDocument()
htmldoc.LoadHtml("<a class='any' href='http://vb4arb.com/'>منتدى فيجوال بيسك لكل العرب</a><a class='any' href='http://google.com/'>جوجل</a>")

Dim nodes As HtmlAgilityPack.HtmlNodeCollection htmldoc.DocumentNode.SelectNodes("//a[@class='any']")
For 
Each n As HtmlAgilityPack.HtmlNode In nodes
    MessageBox
.Show(n.Attributes("href").Value)
Next 
ياجماعة الخير اولا رسالة الخطا هي
Object reference not set to an instance of an object.

ثانيا انا احمل محتوى من المنتدى يعني صفحة كاملة .
الصفحات : 1 2