2012-01-08 9 views
0

私は、製品のサブセットリストを含む単純なXMLファイルを持っています。ファイルをiOS Appバンドルからロードし、パーサーに:initWithNSURLNSURLを指定して送信すると、正しく解析されます。NSDataでNSXML解析エラーが発生する

NSURLConnectionで同じファイルをダウンロードし、initWithDataというパーサーに渡すと、解析が失敗します。 NSString *temp = [NSString stringWithUTF8String:[downloadedData bytes]];を実行すると、出力された文字列が正しいため、データが正しくダウンロードされていることを確認できます。 私は、いつかラインに沿って、何らかの考えをエンコードすることとあることをいつも感じている男がいますか?

+0

NSString * xmlData = [[NSString alloc] initWithData:レスポンスデータエンコーディング:NSUTF8StringEncoding]; これは私がやっていることであり、動作しています – IPaPa

+0

それをパーザにどのように渡していますか? –

+0

パーサーコードを投稿... – DGund

答えて

1

私の友人はパーサージョブを行います。 NSString * xmlData = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

です。xmlDataは
ABCのようになります と私の友人は、単なる文字列を解析し、それが仕事

だと私は

xmlTextReaderPtr reader = xmlReaderForMemory([data bytes], [data length], NULL, NULL,    (XML_PARSE_NOBLANKS | XML_PARSE_NOCDATA | XML_PARSE_NOERROR | XML_PARSE_NOWARNING)); 

if (reader != NULL) { 
    ret = xmlTextReaderRead(reader); 
    while (ret == 1) { 
     const xmlChar *name, *value; 

     name = xmlTextReaderConstName(reader); 
     if (name == NULL) 
     name = BAD_CAST "--"; 
     NSString *Name = [NSString stringWithCString:(const char*)name encoding:NSUTF8StringEncoding]; 

     value = xmlTextReaderConstValue(reader); 
     if (value == NULL) 
      value = BAD_CAST "\n"; 
     NSString *Value = [NSString stringWithCString:(const char*)value encoding:NSUTF8StringEncoding]; 
     NSLog("%d %d %@ %d %@", 
     xmlTextReaderDepth(reader), 
     xmlTextReaderNodeType(reader), 
     Name, 
     xmlTextReaderIsEmptyElement(reader), 
     Value); 



     ret = xmlTextReaderRead(reader); 
    } 
    xmlFreeTextReader(reader); 
    } 

でXMLを解析するためのlibxml2を使用して、結果があまりにも

正しいです
関連する問題