我是Cocoa的新手,只是在Windows上用C/C++開發一些小應用程序。 我想在Cocoa上製作一個「簡單」應用程序。 當用戶特定的XML文件時,文件節點表示爲「enduser可見」。Cocoa XML閱讀器應用程序
我做了一些NSTextField的接口。 我做了一個名爲「XMLFile」的NSDocument的子類,所以我在我的Xcode項目中獲得了「XMLFile.h」和「XMLFile.m」。
在我的應用程序的plist中我成立了一個新的 「文件類型」: XML文件 - 擴展:XML - 角色:視圖 - 類:XMLFILE - 商鋪類型:XML
這是我的「XMLFILE。 H「:
#import <Cocoa/Cocoa.h>
@interface FichierXML : NSDocument {
}
IBOutlet NSTextField *dateField;
IBOutlet NSTextField *titleField;
IBOutlet NSTextField *descField;
IBOutlet NSTextField *vidfileField;
IBOutlet NSTextField *imgfileField;
IBOutlet NSObjectController *object;
NSUInteger *mask;
@end
這裏是我的 」XMLFile.m「:
#import "XMLFile.h"
@implementation XMLFile
- (BOOL)readFromData:(NSData *)datafile ofType:(NSString *)typeName error:(NSError **)outerror
{
NSMutableArray* ReportCreationDate = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* ReportTitle = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* ReportDescription = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* VideoPath = [[NSMutableArray alloc] initWithCapacity:10];
NSMutableArray* VideoThumbnailImageName = [[NSMutableArray alloc] initWithCapacity:10];
NSXMLDocument* doc = [[NSXMLDocument alloc] initWithData:datafile options:mask error:outerror];
NSXMLElement* root = [doc rootElement];
NSArray* dateElement = [root nodesForXPath:@"//Report/ReportCreationDate" error:nil];
for(NSXMLElement* xmlElement in dateElement)
[dateElement setStringValue:[xmlElement stringValue]];
NSArray* titleElement = [root nodesForXPath:@"//Report/ReportTitle" error:nil];
for(NSXMLElement* xmlElement in titleElement)
[titleField setStringValue:[xmlElement stringValue]];
NSArray* descElement = [root nodesForXPath:@"//Report/ReportDescription" error:nil];
for(NSXMLElement* xmlElement in descElement)
[descField setStringValue:[xmlElement stringValue]];
NSArray* vidfileElement = [root nodesForXPath:@"//Report/Videos/Video/VideoPath" error:nil];
for(NSXMLElement* xmlElement in vidfileElement)
[vidfileField setStringValue:[xmlElement stringValue]];
NSArray* imgfileElement = [root nodesForXPath:@"//Report/Videos/Video/VideoThumbnailImageName" error:nil];
for(NSXMLElement* xmlElement in imgfileElement)
[imgfileField setStringValue:[xmlElement stringValue]];
[doc release];
[ReportCreationDate release];
[ReportTitle release];
[ReportDescription release];
[VideoPath release];
[VideoThumbnailImageName release];
return YES;
}
@end
用戶打開XMLFILE,併爲XMLDocument分析文件中提取節點的數據並將其發送到d ifferents NSTextField。但它不起作用。
如果有人可以幫助我。
現在你有特權。 ;) – 2011-03-10 21:37:30
@sudo rm -rf嗨,感謝您的支持! (雖然看起來我還是缺乏「評論無處不在」的代表) – 2011-03-10 21:47:34
好了,以爲是20。我想這是50,哦。繼續! :d – 2011-03-10 21:54:51