user246392
user246392

Reputation: 3017

Find and remove specified HTML tags using Html Agility Pack

I'm trying to get Html Agility Pack to work in my case. I need to detect all script elements in an existing HTML page and remove them, saving the changes to another file. Here, bodyNode returns the correct number of script tags, but I can't remove them. The new file still has those tags.

if (doc.DocumentNode != null)         
{
     var bodyNode = doc.DocumentNode.SelectNodes("//script");          
     if (bodyNode != null)             
     {
          bodyNode.Clear(); // clears the collection only                    
     } 

     doc.Save("some file");        
 }

Upvotes: 7

Views: 5987

Answers (1)

Simon Mourier
Simon Mourier

Reputation: 138960

You need to do something like this:

foreach(HtmlNode node in bodyNode)
{
   node.ParentNode.RemoveChild(node);
}

Upvotes: 14

Related Questions