У меня есть следующий код, который я использую для получения страницы 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
IS Centernode
NULL? Вам может потребоваться выбрать-Single с помощью запроса »// * [@ id = 'Content']"
.
Для информации, «/ A»
означает все анкеры в корне . Это работает »:: A"
работа? Также есть HTMLELEMATE.GETELEMESSYTAGNAME
, который может быть проще - то есть. yourElement.getelementsByTagname («A»)
.