我要解析的我的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
以下是用于解析数据的代码:
-(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中崩溃了。 &#39; NSUnknownKeyException&#39;,原因:&#39; [setValue:forUndefinedKey:]:此类与密钥ItemCode不符合密钥值编码。&#39;
答案 0 :(得分:0)
在view.h文件中,你应该将变量声明为
int * ItemCode;
NSString * ItemName;
NSString * Price;
变量应该等于标签名称