2013-10-23 109 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