12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include "config.h"
#include <stdio.h>
#include <string.h>
#import "OFXMLParser.h"
@interface ParserDelegate: OFObject <OFXMLParserDelegate>
@end
@implementation ParserDelegate
- (void)xmlParser: (OFXMLParser*)parser
didStartTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns
|
|
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include "config.h"
#include <stdio.h>
#include <string.h>
#import "OFXMLParser.h"
@interface ParserDelegate: OFObject
@end
@implementation ParserDelegate
- (void)xmlParser: (OFXMLParser*)parser
didStartTagWithName: (OFString*)name
prefix: (OFString*)prefix
namespace: (OFString*)ns
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
}
- (void)xmlParser: (OFXMLParser*)parser
foundString: (OFString*)string
{
printf("STRING\n\"%s\"\n\n", [string cString]);
}
- (OFString*)xmlParser: (OFXMLParser*)parser
foundUnknownEntityNamed: (OFString*)entity
{
if ([entity isEqual: @"foo"])
return @"foobar";
return nil;
}
@end
int
main()
{
const char *foo = "bar<foo:bar bar='b&az' qux:qux=\" quux \">\r\n"
"foo<bar<qux >bar <baz name='' test='&foo;'/> quxbar\r\n</qux>"
"</foo:bar>";
size_t len = strlen(foo);
size_t i;
OFXMLParser *parser = [OFXMLParser xmlParser];
[parser setDelegate: [[ParserDelegate alloc] init]];
/* Simulate a stream where we only get chunks */
|
>
>
>
>
>
>
|
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
}
- (void)xmlParser: (OFXMLParser*)parser
foundString: (OFString*)string
{
printf("STRING\n\"%s\"\n\n", [string cString]);
}
- (void)xmlParser: (OFXMLParser*)parser
foundComment: (OFString*)comment
{
printf("COMMENT\n\"%s\"\n\n", [comment cString]);
}
- (OFString*)xmlParser: (OFXMLParser*)parser
foundUnknownEntityNamed: (OFString*)entity
{
if ([entity isEqual: @"foo"])
return @"foobar";
return nil;
}
@end
int
main()
{
const char *foo = "bar<foo:bar bar='b&az' qux:qux=\" quux \">\r\n"
"foo<bar<qux >bar <baz name='' test='&foo;'/> quxbar\r\n</qux>"
"</foo:bar><!-- foo bar-baz -->";
size_t len = strlen(foo);
size_t i;
OFXMLParser *parser = [OFXMLParser xmlParser];
[parser setDelegate: [[ParserDelegate alloc] init]];
/* Simulate a stream where we only get chunks */
|