Выберите весь <p> из дочернего использования Узла HTMLAgilityPack

У меня есть следующий код, который я использую для получения страницы HTML. Сделайте URL абсолютными и затем сделайте рэл ссылок nofollow и открытый в новом окне/вкладке. Моя проблема вокруг добавления атрибутов к <a>s.

        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();

Кто-либо может видеть то, что я делаю неправильно? Попытка некоторое время здесь без удачи. Этот код подходит тот ContentNode. SelectNodes ("/a") не установлен на экземпляр объекта. Я, хотя попытаться установить пар на 0?

С наилучшими пожеланиями, Denis

5
задан Tim S. Van Haren 21 January 2010 в 17:45
поделиться

1 ответ

IS Centernode NULL? Вам может потребоваться выбрать-Single с помощью запроса »// * [@ id = 'Content']" .

Для информации, «/ A» означает все анкеры в корне . Это работает »:: A" работа? Также есть HTMLELEMATE.GETELEMESSYTAGNAME , который может быть проще - то есть. yourElement.getelementsByTagname («A») .

4
ответ дан 15 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: