diff --git a/HTMLKit/HTMLNode.h b/HTMLKit/HTMLNode.h index a2820f4..d9078f2 100644 --- a/HTMLKit/HTMLNode.h +++ b/HTMLKit/HTMLNode.h @@ -101,7 +101,8 @@ typedef NS_ENUM(short, HTMLNodeType) - (void)enumerateChildElementsUsingBlock:(void (^)(HTMLElement *element, NSUInteger idx, BOOL *stop))block; - (HTMLNodeIterator *)nodeIterator; - +- (HTMLNodeIterator *)nodeIteratorWithFilter:(id)filter + showOptions:(HTMLNodeFilterShowOptions)showOptions; - (NSString *)treeDescription; @end diff --git a/HTMLKit/HTMLNode.m b/HTMLKit/HTMLNode.m index bb8bbf7..f65cf9b 100644 --- a/HTMLKit/HTMLNode.m +++ b/HTMLKit/HTMLNode.m @@ -277,9 +277,14 @@ - (HTMLNodeIterator *)nodeIterator { - return [[HTMLNodeIterator alloc] initWithNode:self]; + return [self nodeIteratorWithFilter:nil showOptions:HTMLNodeFilterShowAll]; } +- (HTMLNodeIterator *)nodeIteratorWithFilter:(id)filter + showOptions:(HTMLNodeFilterShowOptions)showOptions +{ + return [[HTMLNodeIterator alloc] initWithNode:self filter:filter showOptions:showOptions]; +} #ifndef HTMLKIT_NO_DOM_CHECKS diff --git a/HTMLKit/HTMLNodeFilter.h b/HTMLKit/HTMLNodeFilter.h index 31cbdfa..021fe5a 100644 --- a/HTMLKit/HTMLNodeFilter.h +++ b/HTMLKit/HTMLNodeFilter.h @@ -20,7 +20,6 @@ typedef NS_ENUM(unsigned long, HTMLNodeFilterShowOptions) HTMLNodeFilterShowAll = 0xFFFFFFFF, HTMLNodeFilterShowElement = 0x1, HTMLNodeFilterShowText = 0x4, - HTMLNodeFilterShowProcessingInstruction = 0x40, HTMLNodeFilterShowComment = 0x80, HTMLNodeFilterShowDocument = 0x100, HTMLNodeFilterShowDocumentType = 0x200, diff --git a/HTMLKit/HTMLNodeIterator.h b/HTMLKit/HTMLNodeIterator.h index f082809..d6c0cb7 100644 --- a/HTMLKit/HTMLNodeIterator.h +++ b/HTMLKit/HTMLNodeIterator.h @@ -20,6 +20,12 @@ @property (nonatomic, strong, readonly) id filter; - (instancetype)initWithNode:(HTMLNode *)node; +- (instancetype)initWithNode:(HTMLNode *)node + filter:(id)filter; +- (instancetype)initWithNode:(HTMLNode *)node + filter:(id)filter + showOptions:(HTMLNodeFilterShowOptions)showOptions; + - (HTMLNode *)nextNode; - (HTMLNode *)previousNode; diff --git a/HTMLKit/HTMLNodeIterator.m b/HTMLKit/HTMLNodeIterator.m index 8da7de0..370155e 100644 --- a/HTMLKit/HTMLNodeIterator.m +++ b/HTMLKit/HTMLNodeIterator.m @@ -24,13 +24,27 @@ typedef NS_ENUM(short, TraverseDirection) @implementation HTMLNodeIterator - (instancetype)initWithNode:(HTMLNode *)node +{ + return [self initWithNode:node filter:nil]; +} + +- (instancetype)initWithNode:(HTMLNode *)node + filter:(id)filter +{ + return [self initWithNode:node filter:nil showOptions:HTMLNodeFilterShowAll]; +} + +- (instancetype)initWithNode:(HTMLNode *)node + filter:(id)filter + showOptions:(HTMLNodeFilterShowOptions)showOptions { self = [super init]; if (self) { _root = node; + _filter = filter; + _whatToShow = showOptions; _referenceNode = _root; _pointerBeforeReferenceNode = YES; - _whatToShow = HTMLNodeFilterShowAll; } return self; }