《XML解析随记》

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

前提

最近在做这么一个功能, 就是现在各大视频网站都有的,手机视频软件里的视频投放到在同一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。 关于这两种解析的具体方式我就不多介绍了。可以去参考iOS开发——XML/JSON数据解析

重点

一开始我们用的就是系统自带的,因为直觉感觉系统的会好一点,但是用了之后才知道这其中的辛酸泪啊!!!!后来我么那就用了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];
    NSLog(@"xmlELE = %@",xmlEle);

    NSArray *array = [xmlEle elementsForName:@"device"];

    for (GDataXMLElement *ele in array) {
        GDataXMLElement *friendlyNameELe = [[ele elementsForName:@"friendlyName"]objectAtIndex:0];
        NSString *friendlyNameStr = [friendlyNameELe stringValue];
        NSLog(@"friendlyNameStr = %@",friendlyNameStr);

        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];
        NSLog(@"urlStr = %@",urlStr);

    }

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

DEMO

GDataXMLDemo

相关文章
|
2月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
203 0
|
9月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `<appender>` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `<logger>` 和 `<root>` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2191 1
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
9月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
334 15
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
269 0

推荐镜像

更多
  • DNS