c# - HTMLAgilityPack 选择注释之间的节点

标签 c# html-agility-pack comments

我正在替换一些属于特定小部件的头脚本。我希望能够找到与位于评论之间的该小部件相关的所有节点。此外,我想轻松删除与指定小部件相关的任何代码(包括开始和结束注释。

插入和删除的代码如下所示:

<!-- WidgetScript_WidgetName -->

  <script src="Widgets/jquery.somecode.js" type="text/javascript"></script>
  <script type="text/javascript">   
    $(function () {
        $('.someid).dothis({parameter, avatar_size: 48, count: 6});
      });
    </script>
    <link href="Widgets/jquery.somecode.css" media="all" rel="stylesheet" type="text/css"/> 

<!--WidgetScript_WidgetName End-->

最佳答案

尝试使用以下内容:

var startNode = document.DocumentNode.SelectSingleNode("//comment()[contains(., 'WidgetScript_WidgetName')]");
var endNode = document.DocumentNode.SelectSingleNode("//comment()[contains(., 'WidgetScript_WidgetName End')]");
int startNodeIndex = startNode.ParentNode.ChildNodes.IndexOf(startNode);
int endNodeIndex = endNode.ParentNode.ChildNodes.IndexOf(endNode);

var nodes = startNode.ParentNode.ChildNodes.Where((n, index) => index >= startNodeIndex && index <= endNodeIndex).Select(n => n);

关于c# - HTMLAgilityPack 选择注释之间的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275301/

相关文章:

c# - 无法将类型为 'MS.Internal.NamedObject' 的对象转换为 BitmapImage

c# - HtmlAgilityPack WebGet.Load 给出错误 "Object reference not set to an instance of an object"

c# - xpath搜索多个关键字

c# - 引用对象定义的 Spring.NET 表达式

c# - Application.Current.MainPage 与 Navigation.PushAsync() 与 Navigation.PushModalAsync()

comments - Soundcloud 轨道评论按时间戳排序

java - 是否可以从 Kotlin 注释链接 Java 方法?

vba - Worksheet_change : entire column value deleted, 在此操作之前识别非空单元格

c# - 从 System.Collections.Generic.IEnumerable 中获取前 n 个元素

c# - 使用 HTMLAgilityPack 选择具有属性数据 url 的元素