本文整理汇总了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]);
}
}
}