/// <summary> /// 过滤指定编辑器的属性和子元素 /// </summary> /// <param name="node"></param> protected virtual void FiltesTag(IElement node) { string nodeName = node.LocalName.ToLower(); //if (nodeName.Equals("#text")) return; //IElement element = node as IElement; var tag = Policy.Tag(nodeName); PolicyHtmlTagAction actoin = tag == null ? PolicyHtmlTagAction.Filter : tag.Action; switch (actoin) { case PolicyHtmlTagAction.Filter: //删除当前节点,但保留其有效的子节点 PromoteChildren(node); return; case PolicyHtmlTagAction.Validate: //过滤当前元素的属性与及子节点 ValidateAction(node, nodeName, tag); return; case PolicyHtmlTagAction.Truncate: //删除当前节点的所有属性以及子节点,但保留文本和备注节点。 TruncateAction(node); return; default: //将当前节点从父节点中删除。 var parentNode = node.Parent; parentNode.RemoveChild(node); break; } }
/// <summary> /// 过滤指定编辑器的属性和子元素 /// </summary> /// <param name="node"></param> void FiltesTag(HtmlNode node) { string tagName = node.Name.ToLower(); if (tagName.Equals("#text")) { return; } var tag = Policy.Tag(tagName); PolicyHtmlTagAction actoin = tag == null ? PolicyHtmlTagAction.Filter : tag.Action; switch (actoin) { case PolicyHtmlTagAction.Filter: ///删除当前节点,但保留其有效的子节点 PromoteChildren(node); return; case PolicyHtmlTagAction.Validate: ///过滤当前元素的属性与及子节点 ValidateAction(node, tagName, tag); return; case PolicyHtmlTagAction.Truncate: ///删除当前节点的所有属性以及子节点,但保留文本和备注节点。 TruncateAction(node); return; default: ///将当前节点从父节点中删除。 HtmlNode parentNode = node.ParentNode; parentNode.RemoveChild(node); break; } }