html - 如何在 Objective-C 中解析字符串

标签 html objective-c ios xcode parsing

我想解析一个字符串来替换一些元素。
如果我的字符串包含 <ol>然后我想解析 <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;
}  

但是我怎样才能用当前的循环计数替换

  • ?每次第一次计数我都会得到。

  • 最佳答案

    这样做

    NSString * aString = @"your string";
    NSMutableArray *substrings = [NSMutableArray alloc]init];
    NSScanner *scanner = [NSScanner scannerWithString:aString];
    [scanner scanUpToString:@"<ol>" intoString:nil]; // Scan all characters before <ol>
    while(![scanner isAtEnd]) 
    {
      NSString *substring = nil;
      [scanner scanString:@"<ol>" intoString:nil]; // Scan the <ol> character
      if([scanner scanUpToString:@"</ol>" intoString:&substring]) 
      {
      // If the space immediately followed the <ol>, this will be skipped
      [substrings addObject:substring];
      }
     [scanner scanUpToString:@"<ol>" intoString:nil]; // Scan all characters before next <ol>
    }
    

    你在 nsmutablearray 中有一个字符串,可以用来替换你的字符串

    可以对其他标签重复相同的方法

    关于html - 如何在 Objective-C 中解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360091/

    相关文章:

    html,宽度 100% 和填充

    iphone - UIImage 不是编译时常量,Xcode 4

    ios - 首选项捆绑 PSLinkListCell 更改图像

    iphone - 尝试在后台保存图像

    javascript - 如何将 AngularJS 指令应用于 ajax 内容?

    javascript - 鼠标悬停在弹出菜单上

    jquery 终端模板,我需要在右上角有一个持久的 DOM 元素

    iphone - Iphone上的TCP套接字

    iOS : -[__NSCFDictionary _expandedCFCharacterSet]: error

    ios - Swift iOS 10 的推送通知