XMLからの文字列を別の文字列と比較していたところ、結果はそれらが等しくないことを示していました。しかし、NSLog()では両方とも同じでした(例:Valore Books)。
次に、XMLのソースを確認したところ、実際の文字列は「Valore  Books」と であることがわかりました。実際にはスペースです。しかし、問題は、@ "Valore Books"と比較すると、両方が同じではないと言っていることです。
何をすべきか ??
XMLからの文字列を別の文字列と比較していたところ、結果はそれらが等しくないことを示していました。しかし、NSLog()では両方とも同じでした(例:Valore Books)。
次に、XMLのソースを確認したところ、実際の文字列は「Valore  Books」と であることがわかりました。実際にはスペースです。しかし、問題は、@ "Valore Books"と比較すると、両方が同じではないと言っていることです。
何をすべきか ??
注:元の回答を、この問題に対して実際に正しい回答に置き換えています。最初の誤解でごめんなさい。
次の行は、文字列内のhtmlエンティティのエスケープを解除します。
NSString *A = @"Valore Books";
NSString *B = (NSString *)CFXMLCreateStringByUnescapingEntities(NULL, (CFStringRef)A, NULL);
より高いレベルの同等の機能は見つかりませんでしたが、これのパフォーマンスは優れているはずです。ドキュメントを正しく読んだ場合、追加の変換を指定するための3番目の引数としてCFDictionaryRefを渡すことができますが、これはそれ自体で標準的な変換を行うのに適しているようです。
ドキュメントはこちらです。
比較するたびにではなく、プログラムにこれらの文字列を取り込む場所でエンコーディングを処理することをお勧めします。
また、あなたが考慮する必要があるこれの2番目の部分を見つけました。&#160は単なるスペースではなく、ノーブレークスペースであり、上記のコードは標準スペースではなく\312に変換されます。これらは実際にはエンコーディングで別々の文字であり、文字列比較を行うと失敗します。
たぶん、#160を#32に置き換えるのが最も簡単でしょう。
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
そして、それをアンエスケープを通して実行します。
またCFXMLCreateStringByUnescapingEntities
、iPhoneでは利用できないことに気づきました。 これは、iPhoneで同様の変換を行う方法を示す例へのリンクです。
私はグーグルが提供する文字列解析ユーティリティを使用して問題を解決しました。みんなありがとう。
  はノーブレークスペース(Unicode値U + 00A0)です。通常のスペースは(@ "Valore Books"内)Unicode値U+0020です。したがって、それは同じ文字ではなく、2つの文字列は等しくありません。