2011-08-31 66 views
0

我解析它给了一个错误NSXMLParserErrorDomain错误41

NSXMLParserErrorDomain错误41

有人能告诉我这是什么错误的原因以及如何解决这个错误XML文件。

感谢提前。

XML文件是这样

<GetOpenQuestionsForUserResult> 
<Questions Count="2"> 
<Question id="44"> 
<Question Title>test for mitesh</Question Title> 
<Question Description>please respond from mobile</Question Description> 
<Creator Name>[email protected]</Creator Name> 
<Creation Date>08/29/2011</Creation Date> 
<Respondent Names>[email protected]</Respondent Names> 
<Anonymous Answers>Yes</Anonymous Answers> 
<Expiry Date>08/29/2011</Expiry Date> 
</Question> 

<Question id="45"> 
<Question Title>test for mitesh 2</Question Title> 
<Question Description>second question for mitesh mobile</Question Description> 
<Creator Name>[email protected]</Creator Name> 
<Creation Date>08/29/2011</Creation Date> 
<Respondent Names>[email protected]</Respondent Names> 
<Anonymous Answers>Yes</Anonymous Answers> 
<Expiry Date>08/31/2011</Expiry Date> 
</Question> 
</Questions> 
</GetOpenQuestionsForUserResult> 
</GetOpenQuestionsForUserResponse> 

请告诉我如何解析这个XML文件

我下面的代码解析

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
attributes:(NSDictionary *)attributeDict { 


if([elementName isEqualToString:@"Question"]) 
{ 
    [QuesIdArray addObject: [attributeDict objectForKey:@"id"]]; 
} 
    else if([elementName isEqualToString:@"Question Title"]) 
{ 

} 
else if([elementName isEqualToString:@"Question Description"]) 
{ 

} 
else if([elementName isEqualToString:@"Creator Name"]) 
{ 

} 
else if([elementName isEqualToString:@"Creation Date"]) 
{ 

} 
else if([elementName isEqualToString:@"Respondent Names"]) 
{ 

} 
else if([elementName isEqualToString:@"Anonymous Answers"]) 
{ 

} 

else if([elementName isEqualToString:@"Expiry Date"]) 
{ 

} 

    } 

    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 

if(!currentElementValue) 
    currentElementValue = [[NSMutableString alloc] initWithString:string]; 
else 
    [currentElementValue appendString:string]; 


NSLog(@"Processing Value: %@", currentElementValue); 


    } 



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

if(currentElementValue) 
    currentElementValue = [currentElementValue stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

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

    //appDelegate.ErrorString = [ [ NSString alloc ] initWithString: currentElementValue ] ; 
} 

else if([elementName isEqualToString:@"Question Title"]) 
{ 

    [QuesTitleArray addObject:currentElementValue]; 
} 
else if([elementName isEqualToString:@"Question Description"]) 
{ 

    [QuesTextArray addObject:currentElementValue]; 
} 
else if([elementName isEqualToString:@"Creator Name"]) 
{ 
    [QuesCreatorArray addObject:currentElementValue]; 
} 
else if([elementName isEqualToString:@"Creation Date"]) 
{ 
    [QuesCreationDateArray addObject:currentElementValue]; 
} 
else if([elementName isEqualToString:@"Respondent Names"]) 
{ 
    [ResNamesArray addObject:currentElementValue]; 
} 
else if([elementName isEqualToString:@"Anonymous Answers"]) 
{ 
    [QuesAnswerArray addObject:currentElementValue]; 
} 

else if([elementName isEqualToString:@"Expiry Date"]) 
{ 

    [QuesExpiryDateArray addObject:currentElementValue]; 
} 

//[currentElementValue release]; 

currentElementValue = nil; 
} 

谁能告诉我什么错误,我在这里完成。 它给了一个错误:NSXMLParserErrorDomain错误41

回答

1

从的NSXMLParser reference - 41错误代码值是NSXMLParserAttributeHasNoValueError

的问题是,你的XML格式不正确的XML标记名称中不能包含空格。例如,

<Question Title>... 

这里标记名称是'问题'和'标题'被解释为属性名称,它没有值。你应该纠正你的xml来修复这个问题(即删除标签名称中的空格)。

+0

Thanks Vladimir For Ur Answer .. – Vijay

0

尽量不要让空间的标签名称, 说,ü给<Question Title>test for mitesh</Question Title>

使其

<QuestionTitle>test for mitesh</QuestionTitle> 

其他标签也和尝试

相关问题