0

RestKit 経由でサーバーと通信している iOS アプリがあります。ユーザーがテキストをサーバーにアップロードできる投稿機能に取り組んでいます。Web ページがサーバーからのデータも利用することを考えると、サーバーにアップロードされるテキストは HTML 形式にする必要があると判断されました。

コンバーターを探し回ったのですが、HTML からプレーン テキストに変換できるコンバーターしか見つかりませんでした。だから私は必要なことを達成するために基本的なものを作っています。私は1つの障害物に遭遇しました。プレーンテキストの段落を検出する方法がわかりません。

これが私が現在行っていることです。

-(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);    

}

ログは、段落が 1 つしかない場合、これが適切に機能していることを示しています。私の次のステップは、キャリッジ リターン/新しい段落を検出し、以下のようにテキストをフォーマットするループを作成することです。

<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メソッドに実装する方法を教えてください。

4

1 に答える 1

0

@borrrden の指摘に感謝しNSScannerます。私が望んでいたようなことを簡単に行うために必要なすべてのツールも備えています。以下で、私がどのようにそれを機能させたかを見ることができます。また、このリンクを使用していくつかの例を取得しました。

-(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);    

}
于 2013-10-23T03:37:19.270 に答える