An HTML/XML Parser which allows navigation through the hierachy via dot-notation
C++ Objective-C Shell
Pull request Compare This branch is 2 commits ahead, 65 commits behind topfunky:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Classes
Hpple.xcodeproj
UnitTesting
.gitattributes
.gitignore
GTMDefines.h
GTMIPhoneUnitTestDelegate.h
GTMIPhoneUnitTestDelegate.m
GTMIPhoneUnitTestMain.m
GTMSenTestCase.h
GTMSenTestCase.m
Hpple_Prefix.pch
Info.plist
LICENSE.txt
MainWindow.xib
README.markdown
TFHpple.h
TFHpple.m
TFHppleElement.h
TFHppleElement.m
Test-Info.plist
XPathQuery.h
XPathQuery.m
main.m

README.markdown

DESCRIPTION

EXPERIMENTAL! I am not entirely sure whether it is fully XML compliant.

This is a customized version of topfunky's Hpple.

AUTHOR

Geoffrey Grosenbach, Christian Ziegler, Topfunky Corporation and PeepCode Screencasts.

FEATURES

  • Easy searching by XPath
  • Parses HTML and XML
  • Easy access to tag content, name, and attributes via dot-notation

INSTALLATION

  • Open your XCode project and the Hpple project.
  • Drag the "Hpple" directory to your project.
  • Add the libxml2.2.dylib framework to your project and search paths as described at Cocoa with Love

For usage only the following classes are needed:

  • TFHpple.m/.h
  • TFHppleElement.m/.h
  • XPathQuery.m/.h

USAGE

See TFHppleHTMLTest.m in the Hpple project for samples.

#import "TFHpple.h"

NSData  * data      = [NSData dataWithContentsOfFile:@"index.html"];

TFHpple * doc       = [[TFHpple alloc] initWithHTMLData:data];
NSArray * elements  = [doc search:@"//a[@class='sponsor']"];

TFHppleElement * element = [elements objectAtIndex:0];
e.content;              // The text surounded by the tag
e.name;                 // "a"
e.attributes;           // NSDictionary containing TFHppleElements for the attributes
e.childNodes;       // NSDictionary containing TFHppleElements for the childNodes

// If you need the value of the href attribute you access it like this
NSString * value = [e valueForKeyPath:@"attributes.href.content"];