博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《XML解析随记》
阅读量:6676 次
发布时间:2019-06-25

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

前提

最近在做这么一个功能, 就是现在各大视频网站都有的,手机视频软件里的视频投放到在同一WiFi下智能电视上进行播放。

DLNA

DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟), 其宗旨是Enjoy your music, photos and videos, anywhere anytime, DLNA(Digital Living Network Alliance) 由、、等发起成立、旨在解决个人PC,消费电器,移动设备在内的和的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能,目前成员公司已达280多家。 DLNA并不是创造技术,而是形成一种解决的方案,一种大家可以遵守的规范。所以,其选择的各种技术和协议都是当前所应用很广泛的技术和协议。 DLNA将其整个应用规定成5个功能组件。从下到上依次为:网络互连,,媒体传输,设备的发现控制和管理,媒体格式。

正题

通过我们自己的底层库,可以获取到相应设备的Location。但是,这个location是一个XML文件。 那么,我们接下来就说说,解析这个XML过程中的随记。

随记

我看了很多的技术帖子讲解在iOS解析XML的方式。主要的就是两种,一种是iOS系统自带的解析类NSXMLParser,另一种就是GDataXML。 关于这两种解析的具体方式我就不多介绍了。可以去参考

重点

一开始我们用的就是系统自带的,因为直觉感觉系统的会好一点,但是用了之后才知道这其中的辛酸泪啊!!!!后来我么那就用了GDataXML这个用起来轻便多了。但是我看网上的 各种例子都是加载本地的XML文件。下面我就上代码,怎么去解析一个网络的XML文件。

NSString *xmlStr = [@"写入你获取的网络XML文件的URL" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  NSString* xml = [NSString stringWithContentsOfURL:[NSURL URLWithString:xmlStr] encoding:NSUTF8StringEncoding error:nil]; GDataXMLDocument* xmlDoc = [[GDataXMLDocument alloc]initWithXMLString:xml options:0 error:nil];    GDataXMLElement *xmlEle = [xmlDoc rootElement];NSArray *array = [xmlEle elementsForName:@"device"];    for (GDataXMLElement *ele in array) {    GDataXMLElement *friendlyNameELe = [[ele elementsForName:@"friendlyName"]objectAtIndex:0];    NSString *friendlyNameStr = [friendlyNameELe stringValue];        GDataXMLElement *iconListELe = [[ele elementsForName:@"iconList"]objectAtIndex:0];    GDataXMLElement *iconELe = [[iconListELe elementsForName:@"icon"]objectAtIndex:0];    GDataXMLElement *urlELe = [[iconELe elementsForName:@"url"]objectAtIndex:0];    NSString *urlStr = [urlELe stringValue];    }复制代码

获取什么样的节点内容还是需要你自己去根据你自己的需求去做调整的,这里我们需要的就是friendlyName和url这两个节点的内容。

DEMO

转载地址:http://oagxo.baihongyu.com/

你可能感兴趣的文章
Effective JavaScript Item 21 使用apply方法调用函数以传入可变參数列表
查看>>
ViewPager中Fragment无法显示的问题
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本
查看>>
HDU 2831 (贪心)
查看>>
遍历js的obj中所有属性得key
查看>>
lua demo
查看>>
iOS开发-UITapGestureRecognizer手势
查看>>
在QTreeWidget中删除QTreeWidgetItem
查看>>
网页引导:jQuery插件实现的页面功能介绍引导页效果
查看>>
【CSS】使用CSS改变超链接样式
查看>>
HTC T328W刷机包 仿三星S5 UI美化 精简 S5落下
查看>>
spring AOP面向切面编程学习笔记
查看>>
Proftp设置虚拟用户(转)
查看>>
基于tiny4412的Linux内核移植(支持device tree)(二)
查看>>
iOS开发网络篇—NSURLConnection基本使用
查看>>
angularjs笔记(二)
查看>>
SQL Server数据库多种方式查找重复记录
查看>>
Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
查看>>
为什么我们要研究中断?【转】
查看>>