-
22-09-2019 - |
سؤال
لدي الرمز التالي الذي أستخدمه للحصول على صفحة HTML. اجعل عناوين URL مطلقة ثم اجعل الروابط متخلفة وفتح في نافذة/علامة تبويب جديدة. مشكلتي موجودة حول إضافة السمات إلى <a>
س.
string url = "http://www.mysite.com/";
string strResult = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if ((request.HaveResponse) && (response.StatusCode == HttpStatusCode.OK)) {
using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
strResult = sr.ReadToEnd();
sr.Close();
}
}
HtmlDocument ContentHTML = new HtmlDocument();
ContentHTML.LoadHtml(strResult);
HtmlNode ContentNode = ContentHTML.GetElementbyId("content");
foreach (HtmlNode node in ContentNode.SelectNodes("/a")) {
node.Attributes.Append("rel", "nofollow");
node.Attributes.Append("target", "_blank");
}
return ContentNode.WriteTo();
هل يمكن لأي شخص أن يرى ما أفعله خطأ؟ حاول لفترة من الوقت هنا دون حظ. يظهر هذا الرمز هذا المحتوى. أنا على الرغم من محاولة ضبط البخار على 0؟
هتاف ، دينيس
المحلول
هو ContentNode
باطل؟ قد تحتاج إلى اختيار الاستعلام مع الاستعلام "//*[@id='content']"
.
للمعلومات، "/a"
يعني جميع المراسي في جذور. يفعل "descendant::a"
الشغل؟ يوجد ايضا HtmlElement.GetElementsByTagName
الذي قد يكون أسهل - أي yourElement.GetElementsByTagName("a")
.
لا تنتمي إلى StackOverflow