博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml文件解析(解析以后在RootTableViewController输出)
阅读量:4959 次
发布时间:2019-06-12

本文共 6886 字,大约阅读时间需要 22 分钟。

 

 

这是从美团弄得xml文件,地区和经纬度。

你点了地区以后 ,  就可以查看经纬度 ,因为笔者懒, 有现成的文本框 , 所有偷懒了。

 

下面是一些枯燥的代码了 。

 

#import 
#import "RootTableViewController.h"@interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow *window;@end

 

#import "AppDelegate.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    self.window.rootViewController=[[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] initWithStyle:UITableViewStyleGrouped]];    return YES;}

 

#import 
#import "SecondViewController.h"@interface RootTableViewController : UITableViewController
@property(strong,nonatomic)NSMutableArray *arr;@property(strong,nonatomic)NSMutableDictionary *dic1;@property(strong,nonatomic)NSString *str;@property(strong,nonatomic)NSMutableArray *arrname;@end

 

#import "RootTableViewController.h"@interface RootTableViewController ()@end@implementation RootTableViewController- (void)viewDidLoad {    [super viewDidLoad];    self.title=@"城市列表";    self.arrname=[NSMutableArray array];    NSURL *url=[NSURL URLWithString:@"http://www.meituan.com/api/v1/divisions?mtt=1.help%2Fapi.0.0.im7coqq1"];    NSData *data=[NSData dataWithContentsOfURL:url];    NSXMLParser *parser=[[NSXMLParser alloc]initWithData:data];    parser.delegate=self;    BOOL bol=[parser parse];    NSLog(@"%d",bol);    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"reuseIdentifier"];}/** *  文档开始解析 * *  @param parser parser */- (void)parserDidStartDocument:(NSXMLParser *)parser{    self.arr=[NSMutableArray array];}/** *  解析完毕 * *  @param parser parser */- (void)parserDidEndDocument:(NSXMLParser *)parser{    NSLog(@"%@",self.arr);}/** *  文档元素  解析开始 * *  @param parser        解析的对象 *  @param elementName   元素的名称 *  @param namespaceURI  命名空间 *  @param qName *  @param attributeDict 属性的字典 */-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary
*)attributeDict{ if ([elementName isEqualToString:@"division"]) { self.dic1=[NSMutableDictionary dictionary]; [self.dic1 setDictionary:attributeDict]; }}/** * 文档中元素 解析结束 * * @param parser 解析的对象 * @param elementName 元素的名称 * @param namespaceURI 命名空间 * @param qName 属性的字典 */- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName{ if ([elementName isEqualToString:@"name"]||[elementName isEqualToString:@"latitude"]||[elementName isEqualToString:@"longitude"]) { [self.dic1 setObject:self.str forKey:elementName]; } else if ([elementName isEqualToString:@"division"]) { [self.arr addObject:self.dic1]; }}/** * 解析文件元素的内容 * * @param parser 解析对象 * @param string 显示的文本内容 */- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ self.str=string;}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.arr.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuseIdentifier" forIndexPath:indexPath]; for (NSDictionary *dic in self.arr) { [self.arrname addObject:dic[@"name"]]; } cell.textLabel.text=self.arrname[indexPath.row]; return cell;}-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"%@",self.arr[indexPath.row]); SecondViewController *secondvc=[[SecondViewController alloc] init]; secondvc.strweidu=self.arr[indexPath.row][@"latitude"]; secondvc.strjindu=self.arr[indexPath.row][@"longitude"]; [self presentViewController:secondvc animated:YES completion:nil];}@end

 

#import "ViewController.h"#import "RootTableViewController.h"@interface SecondViewController : ViewController@property(strong,nonatomic)UILabel *lblname;@property(strong,nonatomic)UILabel *lblpwd;@property(strong,nonatomic)UITextField *name;@property(strong,nonatomic)UITextField  *pwd;@property(strong,nonatomic)UIButton *buton;@property(strong,nonatomic)NSString *strweidu;@property(strong,nonatomic)NSString *strjindu;@end

 

#import "SecondViewController.h"@interface SecondViewController ()@end@implementation SecondViewController- (void)viewDidLoad {    [super viewDidLoad];    UIImageView *image=[[UIImageView alloc]initWithFrame:self.view.frame ];    [image setImage:[UIImage imageNamed:@"15EADA084F41FF349CED23058FD34D0E"]];    [self.view addSubview:image];    self.lblname=[[UILabel alloc]initWithFrame:CGRectMake(50, 200, 100, 50)];    self.lblname.text=@"精度";    [self.view addSubview:self.lblname];    self.lblpwd=[[UILabel alloc]initWithFrame:CGRectMake(50, 330, 100, 50)];    self.lblpwd.text=@"维度";        [self.view addSubview:self.lblpwd];    self.name=[[UITextField alloc] initWithFrame:CGRectMake(150, 200, 200, 50)];    [self.view addSubview:self.name];           self.name.text =self.strweidu;                    self.name.borderStyle=UITextBorderStyleRoundedRect;    self.pwd=[[UITextField alloc] initWithFrame:CGRectMake(150, 330, 200, 50)];    [self.view addSubview:self.pwd];    self.pwd.text=self.strjindu;    self.pwd.borderStyle=UITextBorderStyleRoundedRect;    self.buton=[[UIButton alloc] initWithFrame:CGRectMake(120, 400, 174, 66)];    self.buton.backgroundColor=[UIColor colorWithRed:0.532 green:1.000 blue:0.161 alpha:1.000];    self.buton.layer.cornerRadius=10;    [self.buton setTitle:@"确认" forState:0];    [self.buton setTitleColor:[UIColor whiteColor] forState:0];    [self.buton addTarget:self action:@selector(next) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:self.buton];}-(void)next{    RootTableViewController *root=[[RootTableViewController alloc]init];                [self presentViewController:root animated:YES completion:nil];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {    // Get the new view controller using [segue destinationViewController].    // Pass the selected object to the new view controller.}*/@end

 

转载于:https://www.cnblogs.com/fume/p/5320629.html

你可能感兴趣的文章
MATLAB实现多元线性回归预测
查看>>
Mac xcode 配置OpenGL
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
使用Asyncio的Coroutine来实现一个有限状态机
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
2.2 标识符
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>
ubuntu下如何查看用户登录及系统授权相关信息
查看>>
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>