iOS:处理XML文件
NSXMLParser是标准库类
Book.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Document created by: lishujun, code-style with XmlGrid Online XML Editor, http://xmlgrid.net -->
<book>
<!--
<summary>
<author>金庸</author>
<content>sfdgasidfhasdfb</content>
</summary>
--> <chapters>
<chapter name="hello">hello,world</chapter>
<chapter name="lishujun">
i'm lishujun
sdfsdfs\
aaaasdfsdf
qqqqqqqq
</chapter>
<chapter name="lishujun2">i'm lishujun2</chapter>
</chapters>
</book>
XmlElement.h
#import <Foundation/Foundation.h> @interface XmlElement : NSObject
@property (strong, nonatomic) NSString *elementName;
@property (strong, nonatomic) NSString *text;
@property (strong, nonatomic) NSDictionary *attributeDict;
@end
XmlElement.m
#import "XmlElement.h" @implementation XmlElement
@synthesize elementName;
@synthesize text;
@synthesize attributeDict;
@end
BookXmlParser.h
#import <Foundation/Foundation.h>
#import "XmlElement.h" @interface BookXMLParser : NSObject <NSXMLParserDelegate>
{
XmlElement *_element;
NSXMLParser *_parser;
} -(id)initWithData:(NSData*)data;
-(BOOL)parse; @end
BookXmlParser.m
#import "BookXMLParser.h"
#import "XmlElement.h" @implementation BookXMLParser -(id)initWithData:(NSData*)data
{
if (self) {
_parser = [[NSXMLParser alloc]initWithData:data];
_parser.delegate = self;
}
return self;
} -(BOOL)parse
{
_element = nil;
return [_parser parse];
} -(void) parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{ [self processElement]; _element = [[XmlElement alloc]init];
_element.elementName = elementName;
_element.attributeDict = attributeDict;
_element.text = @"";
} -(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([_element.text isEqualToString:@""]) {
_element.text = string;
//NSLog(@"Now element is %@", _element.text);
}
} -(void) processElement
{
if (_element == nil) {
return;
} NSLog(@"process:");
NSLog(@"%@, %@", _element.elementName, _element.text);
}
iOS:处理XML文件的更多相关文章
- IOS的XML文件解析,利用了NSData和NSFileHandle
如果需要了解关于文档对象模型和XML的介绍,参看 http://www.cnblogs.com/xinchrome/p/4890723.html 读取XML 上代码: NSFileHandle *fi ...
- IOS解析XML文件
这里使用NSXMLParser来解析,这个是apple自带的xml解析库,有个參考文章:http://www.raywenderlich.com/553/xml-tutorial-for-ios-ho ...
- 【IOS】 XML解析和xml转plist文件(GDataXML)
iOS对于XML的解析有系统自带的SDK--NSXMLParser,鄙人愚拙,只会用GDataXML进行解析,这里仅介绍GData的使用.(以下图为例) 1.对于一个xml文件,先读取出来 NSDat ...
- 在iOS 开发中用GDataXML(DOM方式)解析xml文件
因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我 ...
- 【重要】U3D存放本地游戏存档——不同平台载入XML文件的方法——IOS MAC Android
在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load( ...
- (转)U3D不同平台载入XML文件的方法——IOS MAC Android
自:http://www.cnblogs.com/sifenkesi/archive/2012/03/12/2391330.html 在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不 ...
- iOS xml文件的解析方式 XMLDictionary,GDataXMLNode,NSXMLParser
iOS9之后,默认网络请求是https,所有我们要设置一下网络安全,具体设置如下 1.第三方类库 XMLDictionary 下载地址: https://github.com/nicklockwood ...
- java解析XML文件
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...
- 2016 - 1- 23 iOS中xml解析 (!!!!!!!有坑要解决!!!!!!)
一: iOS中xml解析的几种方式简介 1.官方原生 NSXMLParser :SAX方式解析,使用起来比较简单 2.第三方框架 libxml2 :纯C 同时支持DOM与SAX GDataXML: D ...
随机推荐
- 距离矢量路由协议举例——RIP
1. 工作原理 •RIP 是一种分布式的基于距离矢量的路由选择协议. •RIP 协议要求网络中的每个路由器都要维护从它自己到其它每个目的网络的距离记录. •RIP 协议中的"距离" ...
- (转载)myeclipse项目名称重命名
myeclipse项目名称重命名 实例1 今天晚上在做一个jsp唱片显示的实例,myeclipse项目名称原本想写music结果写成了musci.这就需要项目名称的重命名,单纯的使用 “重构--> ...
- Go语言学习资料汇总
网站: Go语言官网(访问)(中文镜像) Go语言中文网(访问) Go编译器(访问) Go语言中国社区(访问) golanghome(访问) GoLang中国(访问) Gopher Academic( ...
- Linux Bash算数运算方法小结
A= B= 方法1:let(中间无空格) let C=$A+$B 方法2:$[ ] C=$[$A+$B] 方法3:$(()) C=$(($A+$B)) 方法4:expr(中间有空格) C=`expr ...
- virtualbox 安装windows系统的一些问题
今天总结一下,使用virtualbox安装windows系统的一些问题. 安装的是Ghost的系统,正版系统也可以参考. 首先本人的机器原系统是ubuntu 16.04 LTS x64 1.win7或 ...
- build/envsetup.sh中hmm、get_abs_build_var、get_build_var解析
function hmm() { # 打印帮助信息 cat <<EOF Invoke ". build/envsetup.sh" from your shell to ...
- Linq扩展方法之All 、Any
// Summary: // 确定序列中的所有元素是否满足条件. // Parameters: // source:包含要应用谓词的元素的 System.Collections.Generic.IEn ...
- (转)spring ioc原理(看完后大家可以自己写一个spring)
最近,买了本Spring入门书:spring In Action .大致浏览了下感觉还不错.就是入门了点.Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning, ...
- PHP 数组的值插入
曾今写过一个坑货的数组方法 function array_insert($myarray,$value,$position=0) { $fore=($position==0)?array():a ...
- 分享一下常用的hosts列表
#以下的hosts能够保证基本的谷歌服务不受影响,其他网站则不一定能够顺利访问,Youtube视频无法播放,但是可以顺利上传视频 #Thanks smarthosts , 老夏 ,Humorce ...