entfernen Sie html-Knoten von htmldocument :HTMLAgilityPack
In meinem code möchte ich entfernen des img-Tags, die nicht über src-Wert.
Ich bin mit HTMLAgilitypack ist HtmlDocument Objekt.
Ich finde die img, die nicht über src-Wert und versucht, es zu entfernen.. aber es gibt mir eine Fehlermeldung die Auflistung wurde geändert; der Enumerationsvorgang kann nicht ausgeführt werden.
Kann mir jemand helfen dabei?
Die code, die ich verwendet habe ist:
foreach (HtmlNode node in doc.DocumentNode.DescendantNodes())
{
if (node.Name.ToLower() == "img")
{
string src = node.Attributes["src"].Value;
if (string.IsNullOrEmpty(src))
{
node.ParentNode.RemoveChild(node, false);
}
}
else
{
..........//i am performing other operations on document
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, das Sie gerade Bearbeiten, die Sammlung, die während der enumeration durch die Verwendung
HtmlNode.RemoveChild
Methode.Dieses Problem zu beheben, die Sie brauchen, ist zum kopieren von Knoten in eine separate Liste/array durch Aufruf von z.B.
Enumerable.ToList<T>()
oderEnumerable.ToArray<T>()
.Wenn ich Recht habe, wird das problem verschwinden.
Was ich gemacht habe, ist: