2013-10-23 75 views
0

我有一个通过RestKit与服务器通信的iOS应用程序。我正在致力于发布功能,用户可以将文本上传到服务器。考虑到网页利用来自服务器的数据以及已经决定上传到服务器的文本应该是HTML格式。将纯文本从UITextView转换为HTML格式

我搜索了一个转换器,但我似乎找到的所有东西都是从HTML到纯文本而不是其他方式。所以我正在做一个基本的工作来完成我所需要的。我遇到了一个路障。我不确定如何检测纯文本中的段落。

这是我目前所做的。

-(void)parseText { 
    //this method is to parse the string into HTML tags 
    NSString *htmlTag = @"<p class=\"pt\"data-seq=\"1\">"; 
    NSString *articleText = articleField.text; 

    NSString *preTagArticleText = [htmlTag stringByAppendingString:articleText]; 
    NSString *postTagArticleText = [taggedArticleText stringByAppendingString:@"</p>"]; 

    NSLog(@"%@",appendedArticleText);  

}

日志显示,这是正常工作,如果我只有一个段落。我的下一步很可能是创建一个检测回车/新段落的循环,并像下面那样格式化文本。

<p class="pt" data-seq="1">The contents of paragraph 1</p> 
<p class="pt" data-seq="2">The contents of paragraph 2</p> 
<p class="pt" data-seq="3">The contents of paragraph 3</p> 

有人请告诉我如何检测回车并将其实施到我的parseText方法?

+1

查看'NSScanner'。这对解析非常有用。你不需要教程,因为它很简单。 – borrrden

+0

@borrrden我完全空间NSScanner。我在这个项目的早些时候浏览过它。我会检查出来的。 – Ben

+0

@borrrden花了我一个小时来解决这个错误,但是NSScanner是这个技巧谢谢你的输入,如果你提交了一个解决方案,我会给你对号。 – Ben

回答

0

感谢@borrrden指出NSScanner。它拥有所需的所有工具,可以轻松完成我想要的任务。你可以看到我是如何在下面工作的。我也用这个link来举例。

-(void)parseText { 
    appendedArticleText = @""; 
    NSString *articleText = articleField.text; 
    NSString *temp = nil; 
    NSScanner *theScanner = [NSScanner scannerWithString:articleText]; 
    int count = 0; 

    while (![theScanner isAtEnd]) { 
     count = count +1; 
     NSString *htmlTag = [NSString stringWithFormat:@"<p class=\"pt\"data-seq=\"%d\">",count]; 
     [theScanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] intoString:&temp]; 

     NSString *taggedArticleText = [htmlTag stringByAppendingString:temp]; 
     NSString *formattedText = [taggedArticleText stringByAppendingString:@"</p>"]; 
     appendedArticleText = [appendedArticleText stringByAppendingString:formattedText]; 
    } 

NSLog(@"%@",appendedArticleText);  

} 
+0

像魔术一样工作! – Mangesh