supprimer nœud html de htmldocument :HTMLAgilityPack
Dans mon code, je veux supprimer la balise img qui n'ont pas l'src valeur.
Je suis à l'aide de HTMLAgilitypack de HtmlDocument objet.
Je viens de trouver l'img qui n'ont pas l'src valeur et en essayant de l'enlever.. mais il me donne l'erreur de la Collection a été modifiée; opération d'énumération peut pas s'exécuter.
Quelqu'un peut m'aider pour cela?
Le code que j'ai utilisé est:
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
}
}
OriginalL'auteur Priya | 2012-08-24
Vous devez vous connecter pour publier un commentaire.
Il semble que vous êtes la modification de la collecte au cours de l'énumération à l'aide de
HtmlNode.RemoveChild
méthode.Pour corriger ce que vous avez besoin est la copie de vos nœuds à la liste/tableau en appelant par exemple
Énumérable.ToList<T>()
ouÉnumérable.ToArray<T>()
.Si je suis de droite, le problème disparaîtra.
heureux de l'entendre. Mais je pense que par l'utilisation d'une expression xpath est plus facile de rendre votre code plus lisible (il suffit de sélectionner tous les nœuds de l'enlever avec une expression).
Oui ,Vous avez raison.Ok je vais le faire..Merci encore!
fonctionne comme un charme !!
fonctionne comme un charme !!
OriginalL'auteur Alex
Ce que j'ai fait est la suivante:
OriginalL'auteur Priya
OriginalL'auteur Krzysztof Radzimski