いくつかの要素を置き換えるために文字列を解析したいと思います。
文字列に<ol>
thenが含まれている場合は、<li>
要素を解析して数値に置き換えたいと思います。
rangeOfString
含まれている文字列を 確認できることを知っています。
if ([myString rangeOfString:@"<ol>"].location != NSNotFound) {
//Do stuff here
}
<ol>
と</ol>
要素の間だけを解析するにはどうすればよいですか?
編集1:これが私の解決策です
- (NSString *)parseOrderedList:(NSString *)str {
NSMutableString *html = [NSMutableString stringWithCapacity:[str length]];
NSScanner *scanner = [NSScanner scannerWithString:str];
NSString *tempText = nil;
while (![scanner isAtEnd])
{
[scanner scanUpToString:@"<ol>" intoString:&tempText];
[scanner scanUpToString:@"</ol>" intoString:&tempText];
if (tempText != nil) {
[html appendString:tempText];
html = [[[html stringByReplacingOccurrencesOfString:@"</li>" withString:@" "] mutableCopy] autorelease];
while ([html rangeOfString:@"<li>"].location != NSNotFound) {
html = [[[html stringByReplacingOccurrencesOfString:@"<li>" withString:[NSString stringWithFormat:@"%i.", i]] mutableCopy] autorelease];
i++;
}
}
if (![scanner isAtEnd])
[scanner setScanLocation:[scanner scanLocation] + 0];
tempText = @" ";
}
return html;
}
しかし、どうすれば交換できますか