diff --git a/HTMLKit/CSSSelector.h b/HTMLKit/CSSSelector.h index d13fb58..a4f8a58 100644 --- a/HTMLKit/CSSSelector.h +++ b/HTMLKit/CSSSelector.h @@ -44,6 +44,7 @@ extern NSString * _Nonnull NSStringFromNthExpression(CSSNthExpression expression @interface CSSSelector : NSObject -- (BOOL)acceptElement:(nonnull HTMLElement *)element; ++ (nullable instancetype)selectorWithString:(NSString *)stirng; +- (BOOL)acceptElement:(HTMLElement *)element; @end diff --git a/HTMLKit/CSSSelector.m b/HTMLKit/CSSSelector.m index f3a8e52..14097a7 100644 --- a/HTMLKit/CSSSelector.m +++ b/HTMLKit/CSSSelector.m @@ -8,9 +8,20 @@ #import #import "CSSSelector.h" +#import "CSSSelectorParser.h" @implementation CSSSelector ++ (instancetype)selectorWithString:(NSString *)string +{ + NSError *error = nil; + CSSSelector *instance = [CSSSelectorParser parseSelector:string error:&error]; + if (error) { + return nil; + } + return instance; +} + - (BOOL)acceptElement:(HTMLElement *)element { [self doesNotRecognizeSelector:_cmd];