2012-12-22 67 views
-2

可能重复:
Xml parsing in iOS tutorial如何从文件中做XML解析

我在我的Xcode项目XML文件,我想分析中的UITableView这个XML文件并显示数据。由于我对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> 
+0

的问题是什么ü要分析是什么?你想选择哪个标签?请至少框架问题.... – IronManGill

+0

谢谢你的建议。我想解析标题,类别,经纬度,图像。 – vijay

回答

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;