我正在尝试获取解析数据并加载到数组中进行处理。我尝试了很多可能性,但我无法获得数据(字符串)值。有人能提供具体方向吗?我花了几天时间讨论这个问题,看了很多来源,但大多数处理的是http地址而不是数据文件。
磁盘文件内容(部分):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>Ext</key>
<string>-</string>
<key>Newsgls</key>
<string>1</string>
<key>Plate</key>
<string>0</string>
<key>Scott</key>
<string>4435</string>
<key>Series</key>
<string>0</string>
<key>Sheet</key>
<string>0</string>
<key>Usedsgls</key>
<string>0</string>
</dict>
<dict>
<key>Ext</key>
<string>-</string>
<key>Newsgls</key>
<string>1</string>
<key>Plate</key>
使用的代码:
-(IBAction)Parser:(id)sender{
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL fileURLWithPath:_fullInventoryDataPathString]];
[xmlParser setDelegate:self];
BOOL flag = [xmlParser parse];
if (flag){
NSLog(@"OK");
}else{
NSLog(@"False");
}
//[xmlParser release]; //Not allowed with ARC
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI: (NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
NSLog(@"found a element named %@", elementName);
if ([elementName isEqualToString:@"array"]){
// initialize the array
invData = [[NSMutableArray alloc]init];
}
if ([elementName isEqualToString:@"dict"]){
if ([elementName isEqualToString:@"key"]){
if ([ elementName isEqualToString:@"string"]){
//add file data
[invData addObject:Ext];
[invData addObject:Newsgls];
[invData addObject:Plate];
[invData addObject:Scott];
[invData addObject:Series];
[invData addObject:Sheet];
[invData addObject:Usedsgls];
// test data load in array
NSLog(@" dictionary objects 1 = %@",[invData objectAtIndex:0]);
}
}
}
}
Output Received (Unable to get values for keys & load into separate array):
2014-08-17 17:46:19.890 DiskFileParse[8590:303] Documents Directory = /Users/tllengel/Documents
2014-08-17 17:46:19.891 DiskFileParse[8590:303] Inventory Dir Path = /Users/tllengel/Documents/Stamp Project Data
2014-08-17 17:46:19.891 DiskFileParse[8590:303] Inventory Data Path = /Users/tllengel/Documents/Stamp Project Data/InventoryDB.xml
2014-08-17 17:46:19.891 DiskFileParse[8590:303] Inventory Data File Path = /Users/tllengel/Documents/Stamp Project Data/InventoryDB.xml
2014-08-17 17:46:21.694 DiskFileParse[8590:303] Parser Did Start Document
2014-08-17 17:46:21.694 DiskFileParse[8590:303] found a element named plist
2014-08-17 17:46:21.694 DiskFileParse[8590:303] found a element named array
2014-08-17 17:46:21.694 DiskFileParse[8590:303] found a element named dict
2014-08-17 17:46:21.694 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.695 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named dict
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.696 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.697 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.697 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.697 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.697 DiskFileParse[8590:303] found a element named string
2014-08-17 17:46:21.697 DiskFileParse[8590:303] found a element named key
2014-08-17 17:46:21.697 DiskFileParse[8590:303] found a element named string