-2

重複の可能性:
iOS チュートリアルでの Xml 解析

Xcode プロジェクトに XML ファイルがあり、この XML ファイルを解析して UITableView にデータを表示したいと考えています。私はxmlの解析に慣れていないので、同じことをするのが難しくなっています。以下のxmlを解析するには?

私のxmlファイルは次のとおりです。

<application>
    <app_data>
        <wayHome>
            <data>
                <title>159 Darby St Bus Stop</title>
                <category>BUS</category>
                <lat>-32.9320366</lat>
                <long>151.7712731</long>
                <image>159 Darby St Bus Stop.png</image>
            </data>
            <data>
                <title>Beaumont St and Denison St Taxi Rank</title>
                <category>TRAIN</category>
                <lat>-32.9320366</lat>
                <long>151.7712731</long>
                <image>Beaumont St and Denison St Taxi Rank.png</image>
            </data>
            <data>
                <title>Beaumont St Bus Shop next to ANZ</title>
                <category>BUS</category>
                <lat>-32.9227304</lat>
                <long>151.7472369</long>
                <image>Beaumont St Bus Shop next to ANZ.png</image>
            </data>
         </wayHome>
     </app_data>
</application>
4

1 に答える 1

3

NSXMLParserDelegateメソッドを使用してファイルを解析します。

In yourInterface.h file include NSXMLParserDelegate 

@implementation yourInterface.m file: use below code

NSURL* xmlFile = [NSURL  fileURLWithPath:[[NSBundle mainBundle]
                                           pathForResource:@"yourXMLfile"
                                           ofType:@"xml"]];

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFile];

//Initialize the delegate.
XMLParser *parser = [[XMLParser alloc] initXMLParser];

//Set delegate
[xmlParser setDelegate:parser];

//Start parsing the XML file.
BOOL success = [xmlParser parse];

if(success)
NSLog(@"No Errors");
else
NSLog(@"Error Error Error!!!");

委任メソッドを使用してファイルを解析します。「データ」タグを解析する必要があると思います。ここで、ElementNameが「データ」であるかどうかを確認できます。「データ」の内部タグについても同様です。ここでは、データ要素の配列またはディクショナリを更新できます。

したがって、あなたの仕事はデリゲートメソッドで行うことです:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName;
于 2012-12-22T07:41:17.777 に答える