Objective c 未调用NSXMLParser didEndElement和didStartElement
我想为我的iPhone应用程序解析以下信息,但它不起作用Objective c 未调用NSXMLParser didEndElement和didStartElement,objective-c,parsing,nsmutablearray,nsxmlparser,saxparser,Objective C,Parsing,Nsmutablearray,Nsxmlparser,Saxparser,我想为我的iPhone应用程序解析以下信息,但它不起作用 <account> <account_list type="required"> <test_account value="ABCD" /> </account_list> </account> #define kAccount @"account" #define kAccountList @"account_list" #define kTest
<account>
<account_list type="required">
<test_account value="ABCD" />
</account_list>
</account>
#define kAccount @"account"
#define kAccountList @"account_list"
#define kTestAccount @"test_account"
#define kAttValue @"value"
#define kAttType @"type"
这是“didFinishElement”
感谢您在此实施过程中提供的任何帮助,
提前感谢您将解析称为何处。您是否设置了代理?如果我没记错的话,某些属性需要是强的(NSXMLParser)。@Larme是的,我设置了,实际上当我设置断点时,我可以看到_currentTestAccount,但是对于0对象,我认为我的“didStartElement”和“didFinishElement”方法有问题,在哪里调用解析。您是否设置了代理?如果我没记错的话,某些属性需要是强的(NSXMLParser)。@Larme是的,我设置了,实际上当我设置断点时,我可以看到_currentTestAccount,但是对于0对象,我认为我的“didStartElement”和“didFinishElement”方法有问题
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
else if([elementName isEqualToString:kAccountList])
{
if([[_elemsStack head] isEqualToString:kAccount])
{
_currentTestAccount = [[NSMutableArray alloc] init];
NSString* type = [attributeDict valueForKey:kAttrType];
[_currentTestAccount addObject:type];
}
}
else if([elementName isEqualToString:kTestAccount])
{
if([[_elemsStack head] isEqualToString:kAccountList])
{
NSString* value = [attributeDict valueForKey:kAttValue];
[_currentTestAccount addObject:value];
}
}
else if ([elementName isEqualToString:kAccountList])
{
if ([_elemsStack startsWith:kAccount, nil])
{
if (_currentTestAccount != nil)
{
_currentData._currentTestAccount = _currentTestAccount;
_currentTestAccount = nil;
}
}
}