تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف نستخلص الرابط من <a class="any" href="link"
#1
كيف نستخلص الرابط من
<a class="any" href="link"
اريد باستخدام htmlagilitypack
الرد }}}
تم الشكر بواسطة:
#2
-
وجدت لك هذا المثال على السريع.... باستخدام 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
الرد }}}
تم الشكر بواسطة: الشاكي لله , سعود
#3
سهل جدا ويمكن عملها باكثر من طريقة

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

انا الان ماعندي وقت اكتب امثلة لذلك اعذرني ، ابحث في قوقل بتحصل الكثير
الرد }}}
تم الشكر بواسطة: سعود
#4
بارك الله بيكم
ومعذورين
اخي الكريم vbnet
الطريقة هذي اعرفها لكن لاحظ وجود عدد اثنين اللي هو class و href لو كان a href فقط يمشي الكود مضبوط لكن والحال هذي ما ضبط معيSad
الرد }}}
تم الشكر بواسطة:
#5
اتمنى اجد حل لاستبدال روابط showthread.php?555 الى روابط عادية thread-555.html
حاولت بكل الطرق ولم اتمكن من الحل فالمحاولة على منتدى vb4 الخاص بالموقع الحالي
الرد }}}
تم الشكر بواسطة:
#6
-
إذا كان المقصود وجود روابط كثيرة جرب هذا التعديل
كود :
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))
الرد }}}
تم الشكر بواسطة:
#7
اخي الكريم .. كل هذا جربته
("//a[@href]")
ركز على href بينما المطلوب كل من class و href ولن يتم قنصه .
الرد }}}
تم الشكر بواسطة:
#8
(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))
الرد }}}
تم الشكر بواسطة: الشاكي لله
#9
اخي لو بسطت السؤال كان احسن

هل تريد جلب عنصر بالاعماد على ال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 
الرد }}}
تم الشكر بواسطة:
#10
ياجماعة الخير اولا رسالة الخطا هي
Object reference not set to an instance of an object.

ثانيا انا احمل محتوى من المنتدى يعني صفحة كاملة .
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم