Пример codeplex выглядит так:
HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
HtmlAttribute att = link["href"];
att.Value = FixLink(att);
}
doc.Save("file.htm");
Первая проблема - HtmlDocument. DocumentElement не существует! То, что существует, это HtmlDocument. DocumentNode , но даже когда я использую его вместо этого, я не могу получить доступ к атрибуту href, как описано. Я получаю следующую ошибку:
Cannot apply indexing with [] to an expression of type 'HtmlAgilityPack.HtmlNode'
Вот код, который я пытаюсь скомпилировать, когда получаю эту ошибку:
private static void ChangeUrls(ref HtmlDocument doc)
{
foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//@href"))
{
HtmlAttribute attr = link["href"];
attr.Value = Rewriter(attr.Value);
}
}
ОБНОВЛЕНИЕ: Я только что обнаружил, что пример никогда не должен был работать ... И у меня есть решение после прочтения кода примера ... Я выложу свое решение для других людей, таких как чтобы я наслаждался, когда закончил.