0

私のアプリケーション (iPad アプリケーション) には 5 つのフォルダーがあり、各フォルダー内には 1 つの XML ファイルがあります。私の質問は、appDelegate ですべての .xml ファイルを呼び出すにはどうすればよいですか

私はfile1.xml、file2.xml、file3.xml、file4.xml、file5.xmlを持っています(これは必須です)

呼び出しまたは file1 xml のパスの追加には、次のコードがあります。

NSString *xml = [[NSBundle mainBundle] pathForResource:@"file1" ofType:@"xml"];
NSData *Data = [NSData dataWithContentsOfFile:xml];
NSXMLParser *Parser = [[NSXMLParser alloc] initWithData:Data];
file1 *parser = [[file1 alloc] initXMLParser];

しかし、appDelegate クラスに 5 つすべてを含めるにはどうすればよいでしょうか?

それぞれに特定のパーサークラスを作成する必要がありますか、それともすべての情報とタグが同じであるため、appDelegateにすべてを追加するだけです

編集:

たとえば、構造を変更できないフォルダーからそれらを呼び出す必要があります

Folder1/file1.xml

Folder2/file2.xml

Folder3/file3.xml など

4

2 に答える 2

1

NSXMLParserはい、解析する XML ファイルごとにオブジェクトをインスタンス化する必要があります。XML ファイルをロードする簡単な方法は、kimsnarf が言うように、for ループを使用して順番にロードすることです。それらがバンドルに含まれている場合 (そのように見えます)、「Resources/SpecialXMLJunk」などの「Resources」の下の特定のパスにそれらを貼り付け、URLsForResourcesWithExtension:subdirectory:(以前は"Resources/SpecialXMLJunk" から XML ファイルを取得します)。したがって、疑似コードっぽい、おそらく次のようなものです:

NSArray *xmlResourceURLs = [mainBundle
                            URLsForResourcesWithExtension: @"xml"
                            subdirectory: xmlResourcesPath];
foreach (NSURL *xmlURL in xmlResourceURLs)
    [self loadJunkXMLAtURL: xmlURL];
于 2012-10-14T05:30:14.587 に答える
0

for ループを作成し、ファイルを 1 つずつ読み込み/解析します。いずれにせよ、解析されたデータをどこかに (キャッシュまたはデータベース内に) 保存する必要があるため、解析後にファイルとパーサーを保持する必要はありません。代わりに、キャッシュ/データベースからデータを取得してください。

于 2012-10-14T04:52:00.830 に答える