2014-11-05 30 views
0

,我想分析iOS版 - 解析xml數據集,

<DataTable xmlns="http://tempuri.org/「> 

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-  microsoft-com:xml-diffgram-v1"> 
<NewDataSet xmlns=「"> 

<Products diffgr:id="Products1" msdata:rowOrder="0"> 
<ItemCode>001G1-R25111-1701</ItemCode> 
<ItemName>Autocad 2015</ItemName> 
<Price>160714.000000</Price> 
</Products> 
<Products diffgr:id="Products2" msdata:rowOrder="1"> 
<ItemCode>011-0656</ItemCode> 
<ItemName>"SVC, HARDWARE TEST 1"</ItemName> 
<Price>0.000000</Price> 
</Products> 
<Products diffgr:id="Products3" msdata:rowOrder="2"> 
<ItemCode>011-0657</ItemCode> 
<ItemName>"SVC, HARDWARE TEST 2"</ItemName> 
<Price>0.000000</Price> 
</Products> 

</NewDataSet> 
</diffgr:diffgram> 
</DataTable> 

This is my view.h 
#import <Foundation/Foundation.h> 

@interface view : NSObject 
{ 
int *itemcode; 
NSString *itemname; 
NSString *price; 
} 


@property (nonatomic, assign) int *itemcode; 
@property (nonatomic, retain) NSString *itemname; 
@property (nonatomic, retain) NSString *price; 
@end 

view.m 

#import "view.h" 

@implementation view 
@synthesize itemcode,itemname,price; 

@end 

下面是一個使用解析數據的代碼IM我的XML數據:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName 
attributes: (NSDictionary *)attributeDict 
{ 
if([elementName isEqualToString:@"DataTable"]) 
{ 
    if(!soapResults) 
     soapResults = [[NSMutableString alloc] init]; 
    recordResults = TRUE; 
} 

if([elementName isEqualToString:@"NewDataSet"]) { 

    messages = [[NSMutableArray alloc] init]; 
} 
else if([elementName isEqualToString:@"Products"]) { 

    aMessage = [[view alloc] init]; 
} 
} 
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
if(recordResults) 
    [soapResults appendString: string]; 

} 
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString  *)namespaceURI qualifiedName:(NSString *)qName 
{ 

if([elementName isEqualToString:@"Products"]) { 

    [messages addObject:aMessage]; 

    [aMessage setValue: soapResults forKey:elementName]; 
    NSLog(@"MESSAGES COUNT: %d",messages.count); 
    NSLog(@"MESSAGE: %@",aMessage); 

    aMessage = nil; 
} 
// as this is the last element 
if([elementName isEqualToString:@"NewDataSet"]) 
{ 
    recordResults = FALSE; 
} 
} 

我不是得到所分析的數據,並導致崩潰在didendelement。 'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:這個類不是關鍵字的值CodeCode。

回答

0

在view.h文件ü應變量聲明爲

int * ItemCode; 
NSString * ItemName; 
NSString * Price; 

變量應該等於標記名稱