您的位置:首页 > 移动开发

移动端常用的数据交互格式有xml和json两种方式

2016-01-07 23:08 405 查看
JSON

作为一种轻量级的数据交互格式,正在逐步取代xml ,成为数据的通用模式

基于javascript的一个子集 缺点 易读性略差,手动编写难度大,数据量小,JSON格式取代了XMl给网络传输带了很大的便利,但是却没有xml的一目了然

尤其是JSON数据很长的时候,我们会陷入繁琐的数据查找中

XMl可扩展语言

用于标记电子文件使其具有结构性的标记语言 可用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义源语言

易读性高,编写难度小数据量大

1.不要直接使用NSData的同步方法,否则无法设置request的超时时间
2.将加载内容反序列化为JSON之后,可以先保存至plist文件,以便后续操作
3.由于是网络应用,不要使用UIImage的同步加载方法设置ImageView的内容,否则容易造成应用阻塞,影响用户体验
NSXMLParser是SAX方法解析
sax只能读,不能修改,只能顺序访问,适合解析大型XML,解析速度快,使用于大数据的xml数据解析,实现异构系统的数据访问,实现跨平台
从文档的开始每一个节点移动到另一个节点结束
dom (document object Model)
不仅能读,还能修改,而且能够实现随机访问,缺点是访问速度慢,适合解析小型文档。为载入到内存的文档节点建立类型描叙
,可横向移动,巨大的树形结构,在内存中生成节点数代价昂贵

// 1. 开始解析XML文档

- (void)parserDidStartDocument:

// 2.
开始解析某个元素,会遍历整个XML,识别元素节点名称

- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes:

// 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销

- (void)parser:foundCharacters:

// 4. 结束某个节点,存储从parser:foundCharacters:方法中获取到的信息

- (void)parser:didEndElement:namespaceURI:qualifiedName:

注意:在解析过程中,2、3、4三个方法会不停的重复执行,直到遍历完成为止

// 5.
解析XML文档结束

- (void)parserDidEndDocument:

// 6.
解析出错

- (void)parser:parseErrorOccurred:

// 测试加载本地PDF,需要指定MIMETYPE

……

[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"application/pdf"
textEncodingName:@"UTF-8"
baseURL:nil];

// 测试加载本地文本文件,需要指定MIMETYPE

……

[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"text/plain"
textEncodingName:@"UTF-8"
baseURL:nil];

// 测试加载本地HTML文件,需要指定MIMETYPE

……

NSURL *baseURL = [NSURL
fileURLWithPath:[[NSBundle
mainBundle]resourcePath]
isDirectory:YES];

[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"text/html"
textEncodingName:@"UTF-8"
baseURL:baseURL];

说明:baseURL是基准URL,程序要用到其他资源的位置

// 获取当前页面的url

NSString *url = [_webView
stringByEvaluatingJavaScriptFromString:@"document.location.href"];

NSLog(@"url%@",url);

// 获取当前页面的标题

NSString*title = [_webView
stringByEvaluatingJavaScriptFromString:@"document.title"];

NSLog(@"title%@",title);

// 提交表单

[_webView
stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];


•UIWebView是内置浏览器控件,能够加载html、pdf、txt等多种格式文件
•常用加载方法:
–loadRequest:
–loadHTMLString:baseURL:
–loadData:MIMEType:textEncodingName:baseURL:
•常用导航方法:
–goBack– 回退
–goForward– 前进
–reload - 重载
–stopLoading- 取消载入内容
•常用属性:
–scalespageToFit– 自动对页面进行缩放以适应屏幕
–dataDetectorTypes- 设定电话号码、网址、电子邮件和日期等文字变为链接文字
•浏览器通过MIME标志符可以知道使用哪种插件读取相关文件
•iOS可以直接调用js代码与页面通讯
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: