的iOS的NSMutableString删除
标签
问题描述:
我有一个iPhone应用程序,这是多么我在使用的NSXMLParser一个RSS feed解析标题:的iOS的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];
}
这工作完全正常。现在我正在处理另一个包含
标签的标题,并且我想删除它们。我在StackOverflow上看到了不同的问题,如THIS,它给出了用空字符串代替
标签的代码。这是我如何修改我的代码:
- (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];
}
但是,这并不工作,并显示在输出相同的文本而不删除
标签。任何人都可以指出我做错了什么,我该如何纠正它?
答
我想你应该尝试的这些功能之一,这可能会对你有所帮助
#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
什么是currentString这里?您正在初始化一个字符串,然后在其中替换
。 –
@Suresh currentString是的NSMutableString – AJ112
@ AJ112我们猜测。在给它分配一个指向'NSMutableString'的指针后,它不会是其他任何东西。我认为苏雷什正在要求一些背景,例如:1.它是一个实例变量还是什么? 2.它用于什么(或者它应该做什么)? 3.你期望输出是什么,什么是(错误)输出,以及4.这个变量是如何相关的? – 2013-11-01 06:57:40