当前位置: 首页>>代码示例>>C#>>正文


C# HtmlAgilityPack.Remove方法代码示例

本文整理汇总了C#中HtmlAgilityPack.Remove方法的典型用法代码示例。如果您正苦于以下问题:C# HtmlAgilityPack.Remove方法的具体用法?C# HtmlAgilityPack.Remove怎么用?C# HtmlAgilityPack.Remove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HtmlAgilityPack的用法示例。


在下文中一共展示了HtmlAgilityPack.Remove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SanitizeHtmlNode

        private static void SanitizeHtmlNode(HtmlAgilityPack.HtmlNode node)
        {
            if (node.NodeType == HtmlAgilityPack.HtmlNodeType.Element)
              {
            // Remove elements if they're blacklisted
            if (_blacklistedTags.Contains(node.Name))
            {
              node.Remove();
              return;
            }

            // For style tags, validate the inner contents of our
            // style declarations.
            if (node.Name == "style" && !IsValidStyle(node.InnerText))
            {
            node.Remove();
            return;
            }

            // Now filter out invalid attributes, most of which will be removed,
            // but certain invalid attributes (such as blacklisted MIME types) will result
            // in removing the entire element.
            if (node.HasAttributes)
            {
              for (int i = node.Attributes.Count - 1; i >= 0; i--)
              {
            HtmlAgilityPack.HtmlAttribute currentAttribute = node.Attributes[i];

            // Lowercase the attribute and its value for ease of use.
            var attr = currentAttribute.Name.ToLower();
            var val = currentAttribute.Value.ToLower();

            // Remove event handlers
            if (attr.StartsWith("on"))
            {
              node.Attributes.Remove(currentAttribute);
            }
            // Remove stuff with a forbidden MIME type - note that this removes
            // the entire node, not just the attribute.
            else if (attr == "type" && val != null && IsBlacklistedMimeType(val))
            {
              node.Remove();
              return;
            }
            // Remove CSS Expressions
            else if (attr == "style" && val != null && (!IsValidStyle(val) || HasScriptLinks(val)))
            {
              node.Attributes.Remove(currentAttribute);
            }
            // Remove script links from all attributes
            else if (val != null && HasScriptLinks(val))
            {
              node.Attributes.Remove(currentAttribute);
            }
              }
            }
              }

              // Look through child nodes recursively
              if (node.HasChildNodes)
              {
            for (int i = node.ChildNodes.Count - 1; i >= 0; i--)
            {
              SanitizeHtmlNode(node.ChildNodes[i]);
            }
              }
        }
开发者ID:TrevInc,项目名称:HtmlSanitizer,代码行数:67,代码来源:HtmlSanitizer.cs


注:本文中的HtmlAgilityPack.Remove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。