2013-11-01 3 views
0

을 제거하고이이다 : 이것은 완벽하게 잘 작동아이폰 OS 인 NSMutableString 내가 아이폰 애플 리케이션을 <br> 태그

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
     currentString = [[NSMutableString alloc] init]; 
     [self setTitle:currentString]; 
} 

. 이제 그 안에
태그가있는 제목이 들어있는 다른 피드를 처리 중이며이를 제거하려고합니다. 나는 빈 문자열로
태그를 대체하는 코드를 제공하는 THIS과 같은 StackOverflow에 대해 다른 질문을 보았습니다.

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    currentString = [[NSMutableString alloc] init]; 
    currentString = [[currentString stringByReplacingOccurrencesOfString:@"<br>" withString:@""] mutableCopy]; 
    [self setTitle:currentString]; 
} 

는하지만이 작동하지 않고
태그를 제거하지 않고 출력에 동일한 텍스트를 보여줍니다 이것은 내가 내 코드를 수정하는 방법입니다. 아무도 내가 뭘 잘못하고 어떻게 그것을 수정할 수 지적 수 있습니까?

+2

에 도움이 될 수도, 당신은 이러한 기능 중 하나를 시도해야한다고 생각? 여기에 문자열을 초기화하고 나서
을 바꿉니다. –

+0

@Suresh currentString은 NSMutableString입니다. – AJ112

+1

@ AJ112 우리는 그것을 추측했습니다. NSMutableString에 포인터를 할당 한 후에는 다른 어떤 것도 될 수 없습니다. 나는 Suresh가 다음과 같은 몇 가지 상황을 요구하고 있다고 생각한다. 1. 인스턴스 변수인가 아니면 무엇인가? 2. 어떤 용도로 사용됩니까? 3. 출력이 무엇이고, (오류가있는) 출력은 무엇이며, 4.이 변수와 어떤 관련이 있습니까? –

답변

0

은 내가 currentString이 여기에 무슨 당신

#pragma mark - 
#pragma mark - Remove HTML Tags 
- (NSString *)stringByStrippingHTML:(NSString *)inputString 
{ 
    NSMutableString *outString = [[[NSMutableString alloc] initWithString:inputString] autorelease]; 

    if ([inputString length] > 0) 
    { 
     NSRange r; 

     while ((r = [outString rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound) 
     { 
      [outString deleteCharactersInRange:r]; 
     } 
    } 

    return outString; 
} 

- (NSString *)stripTags:(NSString *)str 
{ 
    NSMutableString *html = [NSMutableString stringWithCapacity:[str length]]; 

    NSScanner *scanner = [NSScanner scannerWithString:str]; 
    scanner.charactersToBeSkipped = NULL; 
    NSString *tempText = nil; 

    while (![scanner isAtEnd]) 
    { 
     [scanner scanUpToString:@"<" intoString:&tempText]; 

     if (tempText != nil) 
      [html appendString:tempText]; 

     [scanner scanUpToString:@">" intoString:NULL]; 

     if (![scanner isAtEnd]) 
      [scanner setScanLocation:[scanner scanLocation] + 1]; 

     tempText = nil; 
    } 

    return html; 
} 
+0

네, 그런 방법을 시도했지만 그들은 내가 사용하고있는 stringByReplacingOccurrencesOfString과 다르지 않습니다.내가 stringByReplacingOccurrencesOfString을 사용하든, 또는 내가 설명한 방법을 사용하든, 나는 동일한 출력을 얻는다. – AJ112