1

以前は、次のエンコーディングで URL のコンテンツを取得できました。

<?xml version = "1.0" encoding = "UTF-8"?>

そして、以下に示すコードを使用して NSString に解析します。

NSMutableData *receivedData =  [[[NSMutableData alloc] initWithContentsOfURL:[NSURL URLWithString:authenticateURL]] autorelease];
    NSString *string = [[[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding] autorelease];if (string) {   // if connection established, string will look for <error> in XML
        NSRange range = [string rangeOfString:@"<error>"];
        if (range.location == NSNotFound) {
            result = TRUE;
            NSLog(@"Authenticated!");  // if <error> not found, record is present
        }                           //return TRUE to load data
        else {
            result = FALSE;         // <error> found in XML, record is not found
            NSLog(@"Not Authenticated!");
        }
    }

ただし、今取得する必要があるコンテンツには、実際にはエンコーディングの種類がありません。例:

<?xml version="1.0" ?><authenticate><auth>Y</auth></authenticate>

したがって、文字列を NSLog すると、空になります。他の方法を検索しようとしましたが、私が見つけたすべての例では、人々は UTF8StringEncoding を使用しても問題ありませんでした。アドバイスをいただければ幸いです:)!ありがとう!

4

4 に答える 4

1

オープン ソース ライブラリ TBXML をhttps://gist.github.com/1922643と組み合わせて使用​​すると、受け取った XML を NSDictionary に変換できます。NSData (NSUTF8StringEncoding を使用) とプレーンな NSStrings をサポートします。

この NSDictionary には、XML で利用可能なすべての情報が含まれており、objectForKey: 関数を使用して読み取ることができます。

于 2012-08-21T08:25:34.347 に答える
1

NSXMLParser を使用するか、既製のパーサーhttp://www.developers-life.com/simple-xml-parser-based-on-nsxmlparser-converter.htmlを使用する必要があります

于 2012-08-21T08:28:21.947 に答える
0

申し訳ありませんが、URL から XML を取得できなかったのは、SSL の問題が原因です。私が使用した解決策はここにあります: How to use NSURLConnection to connect with SSL for an untrusted cert?

お手伝いいただいた皆様もありがとうございました^^

于 2012-08-29T10:22:15.593 に答える