Cocoa OS X 10.9 XML解析本地高清文件

时间:2014-08-16 01:19:15

标签: objective-c xml cocoa parsing

我正在尝试获取解析数据并加载到数组中进行处理。我尝试了很多可能性,但我无法获得数据(字符串)值。有人能提供具体方向吗?我花了几天时间讨论这个问题,看了很多来源,但大多数处理的是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

0 个答案:

没有答案