目前我正在試圖解析我的XML字符串表示,我得到它傳遞給ASIHTTPRequest方法 *我的服務器上我的PHP腳本回來 - (空)requestFinished:(ASIHTTPRequest )請求需要幫助使用的NSXMLParser與ASIHTTPRequest
我想使用NSXMLParser來解析這個XML,到目前爲止我已經得到了一切和運行,請參閱代碼我是如何做到這一點,但是我遇到的問題是它似乎正在訪問* - (無效)解析器:(NSXMLParser *)解析器foundCharacters:(NSString )string {方法多次..當我只希望它訪問它一次,並返回值。任何想法,爲什麼會發生這將不勝感激。
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text
NSString *responseString = [request responseString];
NSData *xData = [responseString dataUsingEncoding:NSUTF8StringEncoding];
//myCode.text = responseString;
//NSLog(@" response %@", responseString);
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:xData];
[parser setDelegate:self];
[parser parse];
[parser release];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqual:@"code"]) {
NSLog(@"Found title!");
titleString = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[titleString appendString:string];
NSLog(@"the code string =%@", titleString);
}
// EDITTED :::::
我忘了添加此委託方法,它是最後被調用,將輸出的最終結果。我之所以說它不工作的原因是因爲我在方法名稱中寫了一些錯誤......現在所有的東西都修好了,並且完美地工作。
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementName isEqual:@"code"]) {
//NSLog(@"ended title: %@", titleString);
//Pass code over to animation
[self parseCodeForAnimation:titleString];
[titleString release];
titleString = nil;
}
}
是的,我明白你的意思了。男人有什麼痛苦的,必須這樣編碼...我甚至不知道這是否會與我想要實現的。因爲一旦我有了代碼,我需要將它傳遞給另一個將動畫響應的方法..唯一的原因是解析器:foundCharacters:執行三次它將導致錯誤... –
我想我只是想我做錯了什麼......我沒有使用解析器:namespaceURI:qualifiedName:delegate method ..從這裏我可以將值傳遞給我的動畫方法...但是,在嘗試這樣做是出於某種原因我不能調用這個方法..將繼續試圖通過這個。 –