【发布时间】:2014-09-01 05:46:29
【问题描述】:
我需要去掉<!-- custom ads -->和<!-- /custom ads -->之间的部分
在这段代码中,sn-p。
<!-- custom ads -->
<div style="float:left">
<!-- custom_Forum_Postbit_336x280 -->
<div id='div-gpt-ad-1526374586789-2' style='width:336px; height:280px;'>
<script type='text/javascript'>
googletag.display('div-gpt-ad-1526374586789-2');
</script>
</div>
</div>
<div style="float:left; padding-left:20px">
<!-- custom_Forum_Postbit_336x280_r -->
<div id='div-gpt-ad-1526374586789-3' style='width:336px; height:280px;'>
<script type='text/javascript'>
googletag.display('div-gpt-ad-1526374586789-3');
</script>
</div>
</div>
<div class="clear"></div>
<br>
<!-- /custom ads -->
<!-- google_ad_section_start -->Some Text,<br>
Some More Text...<br>
<!-- google_ad_section_end -->
我已经可以使用此 xPath //comment()[contains(., 'custom')] 找到两个 cmets,但现在我不知道如何删除位于这些“标签”之间的所有内容。
foreach (var comment in htmlDoc.DocumentNode.SelectNodes("//comment()[contains(., 'custom')]"))
{
MessageBox.Show(comment.OuterHtml);
}
有什么建议吗?
【问题讨论】:
-
获取 2 个评论标签的父节点中的所有节点,然后遍历所有子节点并删除从第一条评论到第二条评论的节点。
-
var newhtml = Regex.Replace(html, Regex.Escape(start) + ".+?" + Regex.Escape(end), "", RegexOptions.Singleline);
标签: c# xpath html-agility-pack