IOS中XML解析之小文件解析

2 篇文章 0 订阅

1.加入GDataXMLNode

2.加入libxml2

3.更改GDataXMLNode的ARC格式为-fno-objc-arc

4.在Header Search中加入


//
//  KevinTableViewController.m
//  03-我的播放器
//
//  Created by Kevin1 on 15/3/22.
//  Copyright (c) 2015年 shile. All rights reserved.
//


#import "KevinTableViewController.h"
#import "MBProgressHUD+MJ.h"
#import "KevinVideo.h"
#import "UIImageView+WebCache.h"
#import <MediaPlayer/MediaPlayer.h>
#import "GDataXMLNode.h"


#define KVUrl(path) [NSURL URLWithString:[NSString stringWithFormat:@"http://192.168.1.100:8080/MJServer/%@",path]];


@interface KevinTableViewController ()


@property(nonatomic,strong)NSMutableArray *videos;


@end


@implementation KevinTableViewController


-(NSMutableArray *)videos
{
    if (!_videos) {
        self.videos=[[NSMutableArray alloc]init];
    }
    return _videos;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    //创建URL
//    NSURL *url=[NSURL URLWithString:@"http://192.168.1.100:8080/MJServer/video"];
     NSURL *url=KVUrl(@"video?type=XML");
    
    //创建请求
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    
    //发送请求
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response ,NSData *data,NSError *connerctionError)
     {
         if (connerctionError||data==nil) {
             [MBProgressHUD showError:@"网络繁忙,请稍后再试!"];
             return ;
         }
         //xml解析
         //加载整个XML数据
         GDataXMLDocument *doc=[[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
         
          //获得文档的根节点
         GDataXMLElement *root=doc.rootElement;
         
         //获得获得根元素里的video元素
         NSArray *elements=[root elementsForName:@"video"];
         
         //遍历video元素
         for (GDataXMLElement *videoElement in elements) {
             KevinVideo *video=[[KevinVideo alloc]init];
             video.id=[videoElement attributeForName:@"id"].stringValue.intValue;
             video.name=[videoElement attributeForName:@"name"].stringValue;
             video.length=[videoElement attributeForName:@"length"].stringValue.intValue;
             video.image=[videoElement attributeForName:@"image"].stringValue;
             video.url=[videoElement attributeForName:@"url"].stringValue;
             
             [self.videos addObject:video];
             
         }
         [self.tableView reloadData];
     }];


    //创建URL




}






- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.videos.count;
}




- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *ID=@"video";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID ];
    if (!cell) {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
    }
    KevinVideo *video=self.videos[indexPath.row];
    //显示视频名称
    cell.textLabel.text=video.name;
    
    //显示视频时长
    cell.detailTextLabel.text=[NSString stringWithFormat:@"时长:%d分钟",video.length];
    
    //显示视频截图
//    NSString *imageurl=[NSString stringWithFormat:@"http://192.168.1.100:8080/MJServer/%@",video.image];
//   
//    NSURL *url=[NSURL URLWithString:imageurl];
    NSURL *url=KVUrl(video.image);
    [cell.imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"Default"]];
    return cell;
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    KevinVideo *video=self.videos[indexPath.row];
//    NSString *videourl=[NSString stringWithFormat:@"http://192.168.1.100:8080/MJServer/%@",video.url];
//    NSURL *url=[NSURL URLWithString:videourl];
    
    NSURL *url=KVUrl(video.url);


    MPMoviePlayerViewController *playerVc=[[MPMoviePlayerViewController alloc]initWithContentURL:url];
    [self presentViewController:playerVc animated:YES completion:nil];
    
    
}
@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值