string url = "http://www.myurl.xxx";
HtmlWeb webGet = new HtmlWeb();
HtmlDocument doc = webGet.Load(url);
foreach(var script in doc.DocumentNode.Descendants("script").ToArray())
script.Remove();
foreach(var style in doc.DocumentNode.Descendants("style").ToArray())
style.Remove();
string mtext = doc.DocumentNode.InnerText;
Die Zeichenfolge mtext hat keinen Abstand zwischen Text, wo die Tags entfernt wurden. Wie kann ich die entfernten Tags durch einen Zeilenumbruch oder "" für alle Tag-Instanzen entfernen und ersetzen?
Sie entfernen nur die Knoten. Stattdessen sollten Sie diese Knoten durch die neuen ersetzen. Dadurch werden Ihre <script>
und <style>
-Knoten durch ein Leerzeichen ersetzt:
foreach (var node in doc.DocumentNode.SelectNodes("//script|//style").ToArray())
{
var replacement = doc.CreateTextNode(" ");
node.ParentNode.ReplaceChild(replacement, node);
}