Il semble n'y avoir aucune documentation sur la page codeplex et, pour une raison quelconque, intellisense ne me montre pas les méthodes disponibles ni quoi que ce soit pour htmlagilitypack (par exemple, lorsque je tape MyHtmlDocument.DocumentNode. - Il n'y a pas d'intellisense pour me dire ce que je peux faire prochain)
J'ai besoin de savoir comment supprimer TOUTES les balises <a> et leur contenu du corps du document HTML. Je ne peux pas simplement utiliser Node.InnerText sur le corps, car cela renvoie toujours le contenu des balises A.
Voici un exemple HTML
<html>
<body>
I was born in <a name=BC>Toronto</a> and now I live in barrie
</body>
</html>
J'ai besoin de rentrer
I was born in and now I live in barrie
Merci, j'apprécie l'aide!
Thomas
Cela vous donne le résultat dont vous avez besoin. Cela utilise la méthode récursive pour explorer tous vos nœuds html et vous pouvez simplement supprimer plus de nœuds en ajoutant un nouveau si
Public Sub Test()
Dim document = New HtmlDocument() With { _
Key .OptionOutputAsXml = True _
}
document.LoadHtml("<html><body>I was born in <a name=BC>Toronto</a> and now I live in barrie</body></html>")
For i As var = 0 To document.DocumentNode.ChildNodes.Count - 1
RecursiveMethod(document.DocumentNode.ChildNodes(i))
Next
Console.Out.WriteLine(document.DocumentNode.InnerHtml.Replace(" ", " "))
End Sub
Public Sub RecursiveMethod(child As HtmlNode)
For x As var = 0 To child.ChildNodes.Count - 1
Dim node = child.ChildNodes(x)
If node.Name = "a" Then
node.RemoveAll() //removes all the child nodes of "a"
node.Remove() //removes the actual "a" node
Else
If node.HasChildNodes Then
RecursiveMethod(node)
End If
End If
Next
End Sub
Quelque chose dans le genre de (désolé mon code est C # mais j'espère que cela aidera quand même)
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("some html markup here");
HtmlNodeCollection links = doc.DocumentNode.SelectNodes("//a[@name]");
foreach(HtmlNode link in links)
{
link.Remove();
}
//then one of the many doc.Save(...) overrides to actually get the result of the operation.