Home > プログラム > NSXMLParserで文字が切れてしまう

NSXMLParserで文字が切れてしまう

kuniです。

「http://~~/128459253/roロゴ_normal.png」
と言うようなxmlに書かれたアドレスをNXXMLパーサーで取得しようと思い、
URLエンコードは、
http://akisute.com/2008/12/cocoaiphoneurl.html
に書いていただいている物などを使えばいいのかと思いきや、

そもそも、
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
のStringに入ってくる時点で、なぜか
「http://~~/128459253/ro」
という文字列になってしまっていました。

http://journal.mycom.co.jp/column/iphone/007/index.html
を見ると、NSXMLParserの方が高速みたいですし、
こちらを使ってみようかと思います。


※追記
切れてしまう問題かと思いきや、
NSXMLParserの使い方が間違っていました。
ファイルをダウンロードする時などと同様に、

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
に来たstringは全部ではないので
(長さにもよるとは思いますが、
英語では一回で全文字来るようなのですが、
日本語では1文字1文字でしかここには来ないようです)、
一旦、NSMutableStringなどに入れ、

-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
の部分で完了が解るので、そこで初めて、貯めておいた文字列を使う、
という流れにしないとだめでした。

読んだ文字列をまとめた物を
送ってくれるメソッドが欲しいなあとも思いますが・・
これで取りあえず解決できました。

kuni プログラム