Add Node Iterator initializers with filter and show-options arguments
This commit is contained in:
+2
-1
@@ -101,7 +101,8 @@ typedef NS_ENUM(short, HTMLNodeType)
|
||||
- (void)enumerateChildElementsUsingBlock:(void (^)(HTMLElement *element, NSUInteger idx, BOOL *stop))block;
|
||||
|
||||
- (HTMLNodeIterator *)nodeIterator;
|
||||
|
||||
- (HTMLNodeIterator *)nodeIteratorWithFilter:(id<HTMLNodeFilter>)filter
|
||||
showOptions:(HTMLNodeFilterShowOptions)showOptions;
|
||||
- (NSString *)treeDescription;
|
||||
|
||||
@end
|
||||
|
||||
+6
-1
@@ -277,9 +277,14 @@
|
||||
|
||||
- (HTMLNodeIterator *)nodeIterator
|
||||
{
|
||||
return [[HTMLNodeIterator alloc] initWithNode:self];
|
||||
return [self nodeIteratorWithFilter:nil showOptions:HTMLNodeFilterShowAll];
|
||||
}
|
||||
|
||||
- (HTMLNodeIterator *)nodeIteratorWithFilter:(id<HTMLNodeFilter>)filter
|
||||
showOptions:(HTMLNodeFilterShowOptions)showOptions
|
||||
{
|
||||
return [[HTMLNodeIterator alloc] initWithNode:self filter:filter showOptions:showOptions];
|
||||
}
|
||||
|
||||
#ifndef HTMLKIT_NO_DOM_CHECKS
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@ typedef NS_ENUM(unsigned long, HTMLNodeFilterShowOptions)
|
||||
HTMLNodeFilterShowAll = 0xFFFFFFFF,
|
||||
HTMLNodeFilterShowElement = 0x1,
|
||||
HTMLNodeFilterShowText = 0x4,
|
||||
HTMLNodeFilterShowProcessingInstruction = 0x40,
|
||||
HTMLNodeFilterShowComment = 0x80,
|
||||
HTMLNodeFilterShowDocument = 0x100,
|
||||
HTMLNodeFilterShowDocumentType = 0x200,
|
||||
|
||||
@@ -20,6 +20,12 @@
|
||||
@property (nonatomic, strong, readonly) id<HTMLNodeFilter> filter;
|
||||
|
||||
- (instancetype)initWithNode:(HTMLNode *)node;
|
||||
- (instancetype)initWithNode:(HTMLNode *)node
|
||||
filter:(id<HTMLNodeFilter>)filter;
|
||||
- (instancetype)initWithNode:(HTMLNode *)node
|
||||
filter:(id<HTMLNodeFilter>)filter
|
||||
showOptions:(HTMLNodeFilterShowOptions)showOptions;
|
||||
|
||||
|
||||
- (HTMLNode *)nextNode;
|
||||
- (HTMLNode *)previousNode;
|
||||
|
||||
@@ -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<HTMLNodeFilter>)filter
|
||||
{
|
||||
return [self initWithNode:node filter:nil showOptions:HTMLNodeFilterShowAll];
|
||||
}
|
||||
|
||||
- (instancetype)initWithNode:(HTMLNode *)node
|
||||
filter:(id<HTMLNodeFilter>)filter
|
||||
showOptions:(HTMLNodeFilterShowOptions)showOptions
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_root = node;
|
||||
_filter = filter;
|
||||
_whatToShow = showOptions;
|
||||
_referenceNode = _root;
|
||||
_pointerBeforeReferenceNode = YES;
|
||||
_whatToShow = HTMLNodeFilterShowAll;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user