我有一个通过RestKit与服务器通信的iOS应用程序。我正在开发一个发布功能,用户可以将文本上传到服务器。鉴于网页也使用来自服务器的数据,已经确定上传到服务器的文本应该是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
方法中吗?
答案 0 :(得分: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);
}