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 ...
随机推荐
- java方法的重载
java方法的重载 public class Person1 { private String name; //姓名 private int age; //年龄 priva ...
- jquerymobile知识点:动态ListView
这里要讲的是jqueryMobile 中的ListView 动态的列表 <ul data-role="listview" data-inset="true" ...
- Tomcat优化参数
JAVA_OPTS="-Xmx400m -Xms400m -XX:PermSize=128m -XX:MaxPermSize=400m -XX:+UseG1GC -XX:MaxGCPause ...
- SQL Server 优化器+SQL 基础
http://www.cnblogs.com/shanksgao/tag/%E4%BC%98%E5%8C%96%E5%99%A8/ http://www.cnblogs.com/double-K/ca ...
- Publisher/Subscriber(发布/订阅者)消息模式开发流程
该模式的作用是发布者和订阅者 可以相互发送消息 发布者和订阅者都充当 生产者和消费者 发布者 package publisher.to.subscriber; import java.awt.font ...
- Win32下 Qt与Lua交互使用:配置Qt下Lua运行环境
Lua与C++之间可以实现非常强的交互性.Lua中可以使用C++中的函数,C++中也可以使用Lua中的函数.由此可以引发出很多奇思妙想了. 简单来说,Lua动态的特性补充了C++的功能.当然,也看你具 ...
- thinkphp中session跨域问题
问题描述 <thinkphp实现短信验证注册>中,小编不止记录了短信验证码的实现方法,同时还记录了图片验证码的实现方法. 本地使用,一切正常:后端项目和前端项目都部署到服务器,一切正常:后 ...
- HDU2083JAVA
简易版之最短距离 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- Ⅵ.AngularJS的点点滴滴-- 指令
指令 基本用法 <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angul ...
- View事件分发机制
所谓的事件分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发过程. 点击事件的分发由3个方 ...