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;
}