我的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>
答案 0 :(得分: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是“Data”还是NOT。类似于“数据”的内容。在这里,您可以维护数据元素的数组或字典。
所以你的工作是在委托方法中做:
- (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;