0

チュートリアルから xml パーサーを使用してアプリを作成しました。しかし、このチュートリアルは簡単であることがわかりました。このチュートリアルでは、xml ファイルはローカル xml から解析されます。 /xxx.xml..コードを変更するにはどうすればよいですか...ガイダンスをお願いします..

- (void) applicationDidFinishLaunching:(UIApplication *)application {

// find "sample.xml" in our bundle resources
NSString *sampleXML = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"xml"];
NSData *data = [NSData dataWithContentsOfFile:sampleXML];

// create a new SMXMLDocument with the contents of sample.xml
NSError *error;
SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];

// check for errors
if (error) {
    NSLog(@"Error while parsing the document: %@", error);
    return;
}

// demonstrate -description of document/element classes
NSLog(@"Document:\n %@", document);

// Pull out the <books> node
SMXMLElement *books = [document.root childNamed:@"books"];

// Look through <books> children of type <book>
for (SMXMLElement *book in [books childrenNamed:@"book"]) {

    // demonstrate common cases of extracting XML data
    NSString *isbn = [book attributeNamed:@"isbn"]; // XML attribute
    NSString *title = [book valueWithPath:@"title"]; // child node value
    float price = [[book valueWithPath:@"price"] floatValue]; // child node value (converted)

    // show off some KVC magic
    NSArray *authors = [[book childNamed:@"authors"].children valueForKey:@"value"];

    NSLog(@"Found a book!\n ISBN: %@ \n Title: %@ \n Price: %f \n Authors: %@", isbn, title, price, authors);
}
 }

私は何時間も多くのチュートリアルを試してきましたが、最終的にアプリでこれらのコードを使用してうまくいきました.しかし、サーバーからxmlファイルをインポートする必要があります...

4

2 に答える 2

3

もちろん、必要なすべてのコード (サーバー アクセス + XML パーサー + プロトコル、少なくとも適切なアーキテクチャを実現するため) を書くつもりはありません。これはブログではありません。そう:

  1. まず、サーバーから XML ファイルをダウンロードします。NSURLConnectionサードパーティのライブラリ ( MKNetworKitなど) を使用することも、使用することもできます。
  2. サーバーからデータ ( NSData) を取得したら、それをパーサーに入力できます。

一言で言えば、それだけです。ただのポインタ:

  1. XML パーサーを の中applicationDidFinishLaunching:に入れないでください。意味がありません。それを使用する必要がある場合は、applicationDidFinishLaunching:完全に有効です。XML パーサー用の適切なクラスを作成してください。
于 2012-07-04T07:32:21.417 に答える
1

XML 文字列の取得と解析です。xml を取得するには、次のように記述するだけです。

NSError *error = nil; NSString *xmlString = [NSString stringWithContentsOfURL:[NSURL urlWithString:@"www.xxxxx.com/xxx.xml"] encoding:NSUTF8StringEncoding error:&error]

その後、この文字列をパーサーにフィードします。私の知る限り、TBXML は最速で、使いやすいです。ここから入手できます。

その後、XML のノードをトラバースする必要がありますが、これは簡単で、多くの例を見つけることができます。ここにいくつかのドキュメントがあります。

乾杯!

于 2012-07-04T07:39:07.107 に答える