@@ -23,20 +23,21 @@ #include #include #import "OFXMLElement.h" -#import "OFXMLNode+Private.h" -#import "OFString.h" #import "OFArray.h" -#import "OFDictionary.h" #import "OFData.h" +#import "OFDictionary.h" +#import "OFStream.h" +#import "OFString.h" #import "OFXMLAttribute.h" -#import "OFXMLCharacters.h" #import "OFXMLCDATA.h" -#import "OFXMLParser.h" +#import "OFXMLCharacters.h" #import "OFXMLElementBuilder.h" +#import "OFXMLNode+Private.h" +#import "OFXMLParser.h" #import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" #import "OFMalformedXMLException.h" #import "OFUnboundNamespaceException.h" @@ -112,16 +113,14 @@ + (instancetype)elementWithXMLString: (OFString *)string { return [[[self alloc] initWithXMLString: string] autorelease]; } -#ifdef OF_HAVE_FILES -+ (instancetype)elementWithFile: (OFString *)path ++ (instancetype)elementWithStream: (OFStream *)stream { - return [[[self alloc] initWithFile: path] autorelease]; + return [[[self alloc] initWithStream: stream] autorelease]; } -#endif - (instancetype)init { OF_INVALID_INIT_METHOD } @@ -232,12 +231,11 @@ objc_autoreleasePoolPop(pool); return self; } -#ifdef OF_HAVE_FILES -- (instancetype)initWithFile: (OFString *)path +- (instancetype)initWithStream: (OFStream *)stream { void *pool; OFXMLParser *parser; OFXMLElementBuilder *builder; OFXMLElementElementBuilderDelegate *delegate; @@ -252,11 +250,11 @@ autorelease]; parser.delegate = builder; builder.delegate = delegate; - [parser parseFile: path]; + [parser parseStream: stream]; if (!parser.hasFinishedParsing) @throw [OFMalformedXMLException exceptionWithParser: parser]; self = [delegate->_element retain]; @@ -263,11 +261,10 @@ objc_autoreleasePoolPop(pool); return self; } -#endif - (instancetype)initWithSerialization: (OFXMLElement *)element { self = [super of_init];