我正在尝试解析xml,如果xml Feed中有空节点,应用程序崩溃了。 可能是什么原因?
修改 我的xml看起来像这样
<Sponsors>
<Sponsor>
<Name>name...</Name>
<About>blah...blah...blah</About>
<Website>http://test.com</Website>
<LogoImage>someImage.jpg</LogoImage>
<smallIcon>someImage.jpg</smallIcon>
<Area/>
<BannerImage/>//->>>this node is empty//
</Sponsor>
</Sponsors>
我正在使用NSXML Parser。
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(nil != self.currentsponsorElement){
[self.currentsponsorElement appendString:string];
}
}
答案 0 :(得分:1)
试试这个: -
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"Sponsor"])
{
if(!soapResults)
{
soapResults = [[NSMutableString alloc] init]; //declared in .h
}
recordResults = YES;
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString *)string {
if (string != nil) {
[results setString:@""];
[results appendString: string];
NSLog(@"foundResults: %@",results);
}
}
答案 1 :(得分:0)
不看你的代码,我只能给你一个通用的答案 - 听起来你的代码是“期待”“parser:foundCharacters:”方法中的一个值。查看代码,看看当找到的字符实际上是零时会发生什么。使用try-catch块并处理所有可能的场景,这样你的代码就不会因为你还没有想到的其他事情而导致崩溃。