HtmlAgilityPack Beispiel für das ändern der links nicht funktioniert. Wie kann ich dies erreichen?
Beispiel auf codeplex ist diese :
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");
Die erste Ausgabe ist HtmlDocument.DocumentElement existiert nicht!!! Was existiert, ist HtmlDocument.DocumentNode aber auch wenn ich stattdessen verwenden, ich bin nicht in der Lage, um den Zugriff auf die href-Attribut wie beschrieben. Ich bekomme die folgende Fehlermeldung:
Cannot apply indexing with [] to an expression of type 'HtmlAgilityPack.HtmlNode'
Hier ist der code, den ich versuche zu kompilieren, wenn ich diese Fehlermeldung erhalten:
private static void ChangeUrls(ref HtmlDocument doc)
{
foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//@href"))
{
HtmlAttribute attr = link["href"];
attr.Value = Rewriter(attr.Value);
}
}
UPDATE: ich Nur gefunden, dass das Beispiel wurde nie bedeutet, um zu arbeiten...Und ich habe eine Lösung nach dem Lesen der Beispiel-code...ich poste meine Lösung für andere Leute wie mich zu genießen, einmal abgeschlossen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier meine schnelle Lösung basiert auf Teile der Beispiel-code enthalten in der ZIP.
"//@background|//@lowsrc|//@src|//@href
und ändern IhreValue
Eigenschaften direkt. Sie verschonen würden sich die Kaskade vonif
Aussagen.