سؤال

لدي الرمز التالي الذي أستخدمه للحصول على صفحة 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").

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top