Пример #1
0
        /// <summary>
        /// Determines if the current filter settings includes the provided
        /// node.
        /// </summary>
        /// <param name="filter">The filter settings to use.</param>
        /// <param name="node">The node to check against.</param>
        /// <returns>True if the node is accepted, otherwise false.</returns>
        public static Boolean Accepts(this FilterSettings filter, INode node)
        {
            switch (node.NodeType)
            {
            case NodeType.Attribute:             return(filter.HasFlag(FilterSettings.Attribute));

            case NodeType.CharacterData:         return(filter.HasFlag(FilterSettings.CharacterData));

            case NodeType.Comment:               return(filter.HasFlag(FilterSettings.Comment));

            case NodeType.Document:              return(filter.HasFlag(FilterSettings.Document));

            case NodeType.DocumentFragment:      return(filter.HasFlag(FilterSettings.DocumentFragment));

            case NodeType.DocumentType:          return(filter.HasFlag(FilterSettings.DocumentType));

            case NodeType.Element:               return(filter.HasFlag(FilterSettings.Element));

            case NodeType.Entity:                return(filter.HasFlag(FilterSettings.Entity));

            case NodeType.EntityReference:       return(filter.HasFlag(FilterSettings.EntityReference));

            case NodeType.ProcessingInstruction: return(filter.HasFlag(FilterSettings.ProcessingInstruction));

            case NodeType.Notation:              return(filter.HasFlag(FilterSettings.Notation));

            case NodeType.Text:                  return(filter.HasFlag(FilterSettings.Text));
            }

            return(filter == FilterSettings.All);
        }