Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
.DS_Store
Thumbs.db

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
Expand Down
2 changes: 1 addition & 1 deletion BRYHTMLParser.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Pod::Spec.new do |s|
s.license = 'MIT'
s.platform = :ios
s.homepage = 'https://github.com/irace/BRYHTMLParser'
s.version = '2.1.2'
s.version = '2.1.4'
s.summary = 'An Objective-C wrapper around libxml for parsing HTML.'
s.source = { :git => 'https://github.com/irace/BRYHTMLParser.git', :tag => "#{s.version}" }
s.source_files = 'BRYHTMLParser/*.{h,m}'
Expand Down
48 changes: 27 additions & 21 deletions BRYHTMLParser.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@
objects = {

/* Begin PBXBuildFile section */
9356891F1B56E36E00DEAEF3 /* HTMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9356891E1B56E36E00DEAEF3 /* HTMLNode.h */; };
939D8AA21B56D69100504F60 /* LibXMLHTMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 939D8A9E1B56D69100504F60 /* LibXMLHTMLNode.h */; };
939D8AA31B56D69100504F60 /* LibXMLHTMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 939D8A9F1B56D69100504F60 /* LibXMLHTMLNode.m */; };
939D8AA41B56D69100504F60 /* HTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 939D8AA01B56D69100504F60 /* HTMLParser.h */; };
939D8AA51B56D69100504F60 /* HTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 939D8AA11B56D69100504F60 /* HTMLParser.m */; };
9356891F1B56E36E00DEAEF3 /* BRYNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9356891E1B56E36E00DEAEF3 /* BRYNode.h */; };
939D8AA21B56D69100504F60 /* BRYLibXMLHTMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 939D8A9E1B56D69100504F60 /* BRYLibXMLHTMLNode.h */; };
939D8AA31B56D69100504F60 /* BRYLibXMLHTMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 939D8A9F1B56D69100504F60 /* BRYLibXMLHTMLNode.m */; };
939D8AA41B56D69100504F60 /* BRYParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 939D8AA01B56D69100504F60 /* BRYParser.h */; };
939D8AA51B56D69100504F60 /* BRYParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 939D8AA11B56D69100504F60 /* BRYParser.m */; };
939D8AA91B56D71500504F60 /* BRYHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 939D8AA81B56D6FB00504F60 /* BRYHTMLParser.h */; };
939D8AAB1B56D76100504F60 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 939D8AAA1B56D76100504F60 /* libxml2.dylib */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
9356891E1B56E36E00DEAEF3 /* HTMLNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLNode.h; sourceTree = "<group>"; };
9356891E1B56E36E00DEAEF3 /* BRYNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BRYNode.h; sourceTree = "<group>"; };
939D8A821B56D5D500504F60 /* BRYHTMLParser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BRYHTMLParser.framework; sourceTree = BUILT_PRODUCTS_DIR; };
939D8A861B56D5D500504F60 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
939D8A9E1B56D69100504F60 /* LibXMLHTMLNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LibXMLHTMLNode.h; sourceTree = "<group>"; };
939D8A9F1B56D69100504F60 /* LibXMLHTMLNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibXMLHTMLNode.m; sourceTree = "<group>"; };
939D8AA01B56D69100504F60 /* HTMLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLParser.h; sourceTree = "<group>"; };
939D8AA11B56D69100504F60 /* HTMLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTMLParser.m; sourceTree = "<group>"; };
939D8A9E1B56D69100504F60 /* BRYLibXMLHTMLNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BRYLibXMLHTMLNode.h; sourceTree = "<group>"; };
939D8A9F1B56D69100504F60 /* BRYLibXMLHTMLNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BRYLibXMLHTMLNode.m; sourceTree = "<group>"; };
939D8AA01B56D69100504F60 /* BRYParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BRYParser.h; sourceTree = "<group>"; };
939D8AA11B56D69100504F60 /* BRYParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BRYParser.m; sourceTree = "<group>"; };
939D8AA81B56D6FB00504F60 /* BRYHTMLParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BRYHTMLParser.h; sourceTree = "<group>"; };
939D8AAA1B56D76100504F60 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -60,11 +60,11 @@
isa = PBXGroup;
children = (
939D8AA81B56D6FB00504F60 /* BRYHTMLParser.h */,
9356891E1B56E36E00DEAEF3 /* HTMLNode.h */,
939D8AA01B56D69100504F60 /* HTMLParser.h */,
939D8AA11B56D69100504F60 /* HTMLParser.m */,
939D8A9E1B56D69100504F60 /* LibXMLHTMLNode.h */,
939D8A9F1B56D69100504F60 /* LibXMLHTMLNode.m */,
9356891E1B56E36E00DEAEF3 /* BRYNode.h */,
939D8AA01B56D69100504F60 /* BRYParser.h */,
939D8AA11B56D69100504F60 /* BRYParser.m */,
939D8A9E1B56D69100504F60 /* BRYLibXMLHTMLNode.h */,
939D8A9F1B56D69100504F60 /* BRYLibXMLHTMLNode.m */,
939D8A851B56D5D500504F60 /* Supporting Files */,
);
path = BRYHTMLParser;
Expand All @@ -86,10 +86,10 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
939D8AA41B56D69100504F60 /* HTMLParser.h in Headers */,
939D8AA21B56D69100504F60 /* LibXMLHTMLNode.h in Headers */,
939D8AA41B56D69100504F60 /* BRYParser.h in Headers */,
939D8AA21B56D69100504F60 /* BRYLibXMLHTMLNode.h in Headers */,
939D8AA91B56D71500504F60 /* BRYHTMLParser.h in Headers */,
9356891F1B56E36E00DEAEF3 /* HTMLNode.h in Headers */,
9356891F1B56E36E00DEAEF3 /* BRYNode.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -120,7 +120,7 @@
939D8A791B56D5D400504F60 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0730;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Bryan Irace";
TargetAttributes = {
939D8A811B56D5D500504F60 = {
Expand Down Expand Up @@ -160,8 +160,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
939D8AA31B56D69100504F60 /* LibXMLHTMLNode.m in Sources */,
939D8AA51B56D69100504F60 /* HTMLParser.m in Sources */,
939D8AA31B56D69100504F60 /* BRYLibXMLHTMLNode.m in Sources */,
939D8AA51B56D69100504F60 /* BRYParser.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -181,8 +181,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
Expand Down Expand Up @@ -229,8 +231,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
Expand Down Expand Up @@ -261,6 +265,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
Expand All @@ -283,6 +288,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
Expand Down
4 changes: 2 additions & 2 deletions BRYHTMLParser/BRYHTMLParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
// Copyright (c) 2015 Bryan Irace. All rights reserved.
//

#import "HTMLNode.h"
#import "HTMLParser.h"
#import "BRYNode.h"
#import "BRYParser.h"
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
//

#import <Foundation/Foundation.h>
#import "HTMLNode.h"
#import "BRYNode.h"

@interface LibXMLHTMLNode : NSObject <HTMLNode>
@interface BRYLibXMLHTMLNode : NSObject <BRYNode>

struct _xmlNode;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@
// Copyright 2010 Ben Reeves. All rights reserved.
//

#import "LibXMLHTMLNode.h"
#import "BRYLibXMLHTMLNode.h"
#import <libxml/HTMLtree.h>

@interface LibXMLHTMLNode ()
@interface BRYLibXMLHTMLNode ()

@property (nonatomic) xmlNode * node;

@end

@implementation LibXMLHTMLNode
@implementation BRYLibXMLHTMLNode

-(LibXMLHTMLNode*)parent
-(BRYLibXMLHTMLNode*)parent
{
return [[LibXMLHTMLNode alloc] initWithXMLNode:_node->parent];
return [[BRYLibXMLHTMLNode alloc] initWithXMLNode:_node->parent];
}

-(LibXMLHTMLNode*)nextSibling {
return [[LibXMLHTMLNode alloc] initWithXMLNode:_node->next];
-(BRYLibXMLHTMLNode*)nextSibling {
return [[BRYLibXMLHTMLNode alloc] initWithXMLNode:_node->next];
}

-(LibXMLHTMLNode*)previousSibling {
return [[LibXMLHTMLNode alloc] initWithXMLNode:_node->prev];
-(BRYLibXMLHTMLNode*)previousSibling {
return [[BRYLibXMLHTMLNode alloc] initWithXMLNode:_node->prev];
}

void setAttributeNamed(xmlNode * node, const char * nameStr, const char * value) {
Expand Down Expand Up @@ -107,9 +107,9 @@ -(NSString*)tagName
}


-(LibXMLHTMLNode*)firstChild
-(BRYLibXMLHTMLNode*)firstChild
{
return [[LibXMLHTMLNode alloc] initWithXMLNode:_node->children];
return [[BRYLibXMLHTMLNode alloc] initWithXMLNode:_node->children];
}


Expand Down Expand Up @@ -138,7 +138,7 @@ -(void)findChildrenWithAttribute:(const char*)attribute matchingName:(const char
if (match)
{
//Found node
LibXMLHTMLNode * nNode = [[LibXMLHTMLNode alloc] initWithXMLNode:cur_node];
BRYLibXMLHTMLNode * nNode = [[BRYLibXMLHTMLNode alloc] initWithXMLNode:cur_node];
[array addObject:nNode];
break;
}
Expand All @@ -164,7 +164,7 @@ -(void)findChildTags:(NSString*)tagName inXMLNode:(xmlNode *)node inArray:(NSMut
{
if (cur_node->name && strcmp((char*)cur_node->name, tagNameStr) == 0)
{
LibXMLHTMLNode * node = [[LibXMLHTMLNode alloc] initWithXMLNode:cur_node];
BRYLibXMLHTMLNode * node = [[BRYLibXMLHTMLNode alloc] initWithXMLNode:cur_node];
[array addObject:node];

}
Expand All @@ -183,7 +183,7 @@ -(NSArray*)findChildTags:(NSString*)tagName
return array;
}

-(LibXMLHTMLNode*)findChildTag:(NSString*)tagName inXMLNode:(xmlNode *)node
-(BRYLibXMLHTMLNode*)findChildTag:(NSString*)tagName inXMLNode:(xmlNode *)node
{
xmlNode *cur_node = NULL;
const char * tagNameStr = [tagName UTF8String];
Expand All @@ -192,10 +192,10 @@ -(LibXMLHTMLNode*)findChildTag:(NSString*)tagName inXMLNode:(xmlNode *)node
{
if (cur_node && cur_node->name && strcmp((char*)cur_node->name, tagNameStr) == 0)
{
return [[LibXMLHTMLNode alloc] initWithXMLNode:cur_node];
return [[BRYLibXMLHTMLNode alloc] initWithXMLNode:cur_node];
}

LibXMLHTMLNode * cNode = [self findChildTag:tagName inXMLNode:cur_node->children];
BRYLibXMLHTMLNode * cNode = [self findChildTag:tagName inXMLNode:cur_node->children];
if (cNode != NULL)
{
return cNode;
Expand All @@ -205,7 +205,7 @@ -(LibXMLHTMLNode*)findChildTag:(NSString*)tagName inXMLNode:(xmlNode *)node
return NULL;
}

-(LibXMLHTMLNode*)findChildTag:(NSString*)tagName
-(BRYLibXMLHTMLNode*)findChildTag:(NSString*)tagName
{
return [self findChildTag:tagName inXMLNode:_node->children];
}
Expand All @@ -218,7 +218,7 @@ -(NSArray*)children

for (cur_node = _node->children; cur_node; cur_node = cur_node->next)
{
LibXMLHTMLNode * node = [[LibXMLHTMLNode alloc] initWithXMLNode:cur_node];
BRYLibXMLHTMLNode * node = [[BRYLibXMLHTMLNode alloc] initWithXMLNode:cur_node];
[array addObject:node];
}

Expand All @@ -240,7 +240,7 @@ -(NSString*)description
return string;
}*/

-(LibXMLHTMLNode*)findChildWithAttribute:(const char*)attribute matchingName:(const char*)name inXMLNode:(xmlNode *)node allowPartial:(BOOL)partial
-(BRYLibXMLHTMLNode*)findChildWithAttribute:(const char*)attribute matchingName:(const char*)name inXMLNode:(xmlNode *)node allowPartial:(BOOL)partial
{
xmlNode *cur_node = NULL;
const char * classNameStr = name;
Expand All @@ -266,14 +266,14 @@ -(LibXMLHTMLNode*)findChildWithAttribute:(const char*)attribute matchingName:(co

if (match)
{
return [[LibXMLHTMLNode alloc] initWithXMLNode:cur_node];
return [[BRYLibXMLHTMLNode alloc] initWithXMLNode:cur_node];
}
}
break;
}
}

LibXMLHTMLNode * cNode = [self findChildWithAttribute:attribute matchingName:name inXMLNode:cur_node->children allowPartial:partial];
BRYLibXMLHTMLNode * cNode = [self findChildWithAttribute:attribute matchingName:name inXMLNode:cur_node->children allowPartial:partial];
if (cNode != NULL)
{
return cNode;
Expand All @@ -283,14 +283,14 @@ -(LibXMLHTMLNode*)findChildWithAttribute:(const char*)attribute matchingName:(co
return NULL;
}

-(LibXMLHTMLNode*)findChildWithAttribute:(NSString*)attribute matchingName:(NSString*)className allowPartial:(BOOL)partial
-(BRYLibXMLHTMLNode*)findChildWithAttribute:(NSString*)attribute matchingName:(NSString*)className allowPartial:(BOOL)partial
{
return [self findChildWithAttribute:[attribute UTF8String] matchingName:[className UTF8String] inXMLNode:_node->children allowPartial:partial];
}

-(LibXMLHTMLNode*)findChildOfClass:(NSString*)className
-(BRYLibXMLHTMLNode*)findChildOfClass:(NSString*)className
{
LibXMLHTMLNode * node = [self findChildWithAttribute:"class" matchingName:[className UTF8String] inXMLNode:_node->children allowPartial:NO];
BRYLibXMLHTMLNode * node = [self findChildWithAttribute:"class" matchingName:[className UTF8String] inXMLNode:_node->children allowPartial:NO];
return node;
}

Expand Down Expand Up @@ -351,54 +351,54 @@ -(NSString*)contents
return nil;
}

HTMLNodeType nodeType(xmlNode * _node)
BRYNodeType nodeType(xmlNode * _node)
{
if (_node == NULL || _node->name == NULL)
return HTMLUnkownNode;
return BRYUnkownNode;

const char * tagName = (const char*)_node->name;
if (strcmp(tagName, "a") == 0)
return HTMLHrefNode;
return BRYHrefNode;
else if (strcmp(tagName, "text") == 0)
return HTMLTextNode;
return BRYTextNode;
else if (strcmp(tagName, "code") == 0)
return HTMLCodeNode;
return BRYCodeNode;
else if (strcmp(tagName, "span") == 0)
return HTMLSpanNode;
return BRYSpanNode;
else if (strcmp(tagName, "p") == 0)
return HTMLPNode;
return BRYPNode;
else if (strcmp(tagName, "ul") == 0)
return HTMLUlNode;
return BRYUlNode;
else if (strcmp(tagName, "li") == 0)
return HTMLLiNode;
return BRYLiNode;
else if (strcmp(tagName, "img") == 0)
return HTMLImageNode;
return BRYImageNode;
else if (strcmp(tagName, "ol") == 0)
return HTMLOlNode;
return BRYOlNode;
else if (strcmp(tagName, "strong") == 0)
return HTMLStrongNode;
return BRYStrongNode;
else if (strcmp(tagName, "pre") == 0)
return HTMLPreNode;
return BRYPreNode;
else if (strcmp(tagName, "blockquote") == 0)
return HTMLBlockQuoteNode;
return BRYBlockQuoteNode;
else if (strcmp(tagName, "b") == 0)
return HTMLBoldNode;
return BRYBoldNode;
else if (strcmp(tagName, "i") == 0)
return HTMLItalicNode;
return BRYItalicNode;
else if (strcmp(tagName, "strike") == 0)
return HTMLStrikeNode;
return BRYStrikeNode;
else if (strcmp(tagName, "br") == 0)
return HTMLBrNode;
return BRYBrNode;
else if (strcmp(tagName, "em") == 0)
return HTMLEmNode;
return BRYEmNode;
else if (strcmp(tagName, "del") == 0)
return HTMLDelNode;
return BRYDelNode;
else
return HTMLUnkownNode;
return BRYUnkownNode;

}

-(HTMLNodeType)nodetype
-(BRYNodeType)nodetype
{
return nodeType(_node);
}
Expand Down
Loading