2

foundCharactersの文字をトリミングする正しい方法は何NSXMLParserですか?

私はこのようにする多くの例を見つけました:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
        NSString *characters = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
        // Append to previous characters of the same element
}

それでも、上記を実行すると、ASCII 以外の文字が続くスペースが削除されます。例:「thisé」は「thisé」になります。

4

2 に答える 2

2

それでも、上記を実行すると、ASCII 以外の文字が続くスペースが削除されます。例:「thisé」は「thisé」になります。

偶然かもしれません。

の議論を参照してくださいparser:foundCharacters:

パーサー オブジェクトは、いくつかの parser:foundCharacters: メッセージをデリゲートに送信して、要素の文字を報告する場合があります。文字列は現在の要素の文字コンテンツ全体の一部にすぎない可能性があるため、要素が変更されるまで、現在の文字の蓄積に追加する必要があります。

そして、this(最後にスペースが見えない)から空白をトリミングしてからéthisé.

私は NSXMLParser を使用したことがありませんが、parser:didEndElement:namespaceURI:qualifiedName:. 私が理解していることから、要素はそれで完成します。

しかし、私はちょうど推測しています。

于 2011-02-19T17:24:28.553 に答える
0

これは、問題なく空白をトリミングするために過去に使用したものです。

- (NSString *)trim:(NSString *)inStr {
    return [inStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

}

唯一の違いは、わずかに異なる空白文字セットを使用していることです。

于 2011-02-19T18:55:42.773 に答える