Przykład zmiany htmlAgilityPack nie działa. Jak to osiągnąć?
Przykład nacodeplex czy to jest :
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");
Pierwszym problemem jest HtmlDocument.DocumentElement nie istnieje! To, co istnieje, to HtmlDocument.DocumentNode ale nawet gdy tego używam, nie mogę uzyskać dostępu do atrybutu href zgodnie z opisem. Otrzymuję następujący błąd:
Cannot apply indexing with [] to an expression of type 'HtmlAgilityPack.HtmlNode'
Oto kod, który próbuję skompilować, gdy otrzymam ten błąd:
private static void ChangeUrls(ref HtmlDocument doc)
{
foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//@href"))
{
HtmlAttribute attr = link["href"];
attr.Value = Rewriter(attr.Value);
}
}
AKTUALIZACJA: Właśnie odkryłem, że ten przykład nigdy nie miał działać ... I mam rozwiązanie po przeczytaniu przykładowego kodu ... Opublikuję moje rozwiązanie dla innych osób, takich jak ja, aby cieszyć się nimi po zakończeniu.