0
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;

文字列 mtext には、タグが削除されたテキスト間にスペースがありません。すべてのタグ インスタンスに対して、削除したタグを改行または " " で「削除」して置き換えるにはどうすればよいですか?

4

1 に答える 1

5

ノードを削除しているだけです。これの代わりに、それらのノードを新しいノードに置き換える必要があります。<script>これにより、<style>ノードがスペース記号に置き換えられます。

foreach (var node in doc.DocumentNode.SelectNodes("//script|//style").ToArray())
{
    var replacement = doc.CreateTextNode(" ");
    node.ParentNode.ReplaceChild(replacement, node);
}
于 2012-11-13T11:57:27.053 に答える