我是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