49 lines
2.0 KiB
Plaintext
49 lines
2.0 KiB
Plaintext
include "NSLog.incl"
|
|
include "Tlbx XML.incl"
|
|
|
|
#define STUDENTS_KEY @"Students"
|
|
#define STUDENT_KEY @"Student"
|
|
#define NAME_KEY @"Name"
|
|
|
|
void local fn MyParserDelegateCallback( ev as long, parser as XMLParserRef, userData as ptr )
|
|
static BOOL studentsFlag = NO
|
|
CFDictionaryRef attributes
|
|
CFStringRef name
|
|
|
|
select ( ev )
|
|
case _xmlParserDidStartElement
|
|
select ( fn XMLParserDelegateElementName(parser) )
|
|
case STUDENTS_KEY
|
|
studentsFlag = YES
|
|
|
|
case STUDENT_KEY
|
|
if ( studentsFlag )
|
|
attributes = fn XMLParserDelegateAttributes(parser)
|
|
name = fn DictionaryObjectForKey( attributes, NAME_KEY )
|
|
if ( name ) then NSLog(@"%@",name)
|
|
end if
|
|
end select
|
|
end select
|
|
end fn
|
|
|
|
void local fn ParseXMLFile
|
|
CFStringRef xmlString = @"<Students>\n"
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"%@\n",@"<Student Name=\"April\" Gender=\"F\" DateOfBirth=\"1989-01-02\" />\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"<Student Name=\"Bob\" Gender=\"M\" DateOfBirth=\"1990-03-04\" />\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"<Student Name=\"Chad\" Gender=\"M\" DateOfBirth=\"1991-05-06\" />\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"<Student Name=\"Dave\" Gender=\"M\" DateOfBirth=\"1992-07-08\">\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"<Pet Type=\"dog\" Name=\"Rover\" />\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"</Student>\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"<Student DateOfBirth=\"1993-09-10\" Gender=\"F\" Name=\"Émily\" />\n" )
|
|
xmlString = fn StringByAppendingFormat( xmlString, @"</Students>" )
|
|
|
|
CFDataRef xmlData = fn StringData( xmlString, NSUTF8StringEncoding )
|
|
XMLParserRef parser = fn XMLParserWithData( xmlData )
|
|
XMLParserSetDelegateCallback( parser, @fn MyParserDelegateCallback, NULL )
|
|
fn XMLParserParse( parser )
|
|
end fn
|
|
|
|
fn ParseXMLFile
|
|
|
|
HandleEvents
|