NSXMLParser自定义的一个xml解析工具
//
// DenglXMLParser.h
// #import <Foundation/Foundation.h> @interface DenglXMLParser : NSXMLParser<NSXMLParserDelegate> @property (nonatomic,strong) NSMutableArray *array; @end
//
// DenglXMLParser.m
// #import "DenglXMLParser.h" @interface DenglXMLParser () @end @implementation DenglXMLParser #pragma mark - <NSXMLParserDelegate>
/**
* 解析到某个元素的结尾
*/
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
// NSLog(@"didEndElement - %@", elementName);
} /**
* 解析到某个元素的开头
*/
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
// NSLog(@"%@---%@",elementName,attributeDict);
if ([elementName isEqualToString:@"item"]) {
[self.array addObject:attributeDict];
}
} /**
* 开始解析XML文档
*/
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
// NSLog(@"parserDidStartDocument");
self.array = [NSMutableArray array];
} /**
* 解析完毕
*/
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
// NSLog(@"parserDidEndDocument");
} @end
还有一种xml解析的工具
如下是代码:
#import <Foundation/Foundation.h> @interface XMLParser :NSXMLParser<NSXMLParserDelegate>{
//存放解析xml时所得到的标题、日期等项目
NSMutableDictionary *currentItem;
//存放解析xml时所得到的文本内容
NSMutableString *currentContents;
//存放解析内容
NSMutableArray *array;
}
@property (nonatomic,retain) NSMutableString *currentContents;
@property (nonatomic,retain) NSMutableArray *array;
@property (nonatomic,retain) NSMutableDictionary *currentItem; @end
#import "XMLParser.h" @implementation XMLParser @synthesize array;
@synthesize currentItem;
@synthesize currentContents; /**
* 初始设置
*/
- (void)parserDidStartDocument:(NSXMLParser *)parser {
NSMutableArray *mytitleList = [[NSMutableArray alloc] initWithCapacity:];
self.array = mytitleList; } /**
* 准备读取
*/
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict{ if([elementName compare:@"item"] == NSOrderedSame){
NSMutableDictionary *myCurrentItem = [[NSMutableDictionary alloc] initWithCapacity:];
self.currentItem = myCurrentItem; }else if(currentItem != NULL){
NSMutableString *myCurrentContents = [[NSMutableString alloc] initWithCapacity:];
self.currentContents = myCurrentContents;
}
} /**
* 读取内容
*/
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ if(self.currentContents && string)
[self.currentContents appendString:string];
} /**
* 完成读取
*/
- (void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName{
if([elementName compare:@"item"] == NSOrderedSame){
[self.array addObject:self.currentItem];
}else if(self.currentItem && self.currentContents){
[self.currentItem setObject:self.currentContents forKey:elementName];
self.currentContents = nil;
}
} @end
NSXMLParser自定义的一个xml解析工具的更多相关文章
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
- Hpple -- 一个 HTML 解析工具
在开发中,大部分会使用 JSON 进行数据解析,偶尔会用到 HTML. 使用 Objective-C 解析 HTML 或者 XML,系统自带有两种方式一个是通过 libxml,一个是通过 NSXMLP ...
- xml解析工具-jdom
前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...
- Java -- XML解析工具dom4j
前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...
- XML解析工具类
public class XmlUtil { /* * 利用dom4j解析xml文件内容,并返回map数据形式 * path是.xml文件所在的路径 */ public static Map<S ...
- [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml
转自:http://www.itdaan.com/blog/2017/02/20/301ad47832f4.html 由于windows环境下测试不稳定,博主选择在linux下进行的测试! Qt - ...
- xml解析工具mashaller javaee自带解析类
1.怎样去掉Marshaller的格式化? : JAXBContext context = JAXBContext.newInstance(Entity.class); Marshaller mars ...
- java自带的xml解析工具类
public class JaxbUtil { /** * java对象转换为xml文件 * * @param xmlPath xml文件路径 * @param load java对象.Class * ...
- iOS开发之网络数据解析(二)--XML解析简介
前言:本篇随笔介绍的是XML解析. 正文: 1.XML解析方式有2两种: DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件 SAX:从根元素开始,按顺序一个元素一个元素往下解析,比 ...
随机推荐
- .Net程序员面试试题
1:简述private protected public internal修饰符的访问权限? private:私有成员在类的内部可以访问: protected:受保护的成员,在类的内部和继承类中可以访 ...
- Trie树及其应用
Trie树及其应用 Trie树 Trie树,又称单词查找树.字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经 ...
- PHP, Python Nginx works together!
Nginx is so good at delivering requests to many others. Good! Now let's use the nginx upstream modul ...
- Markdown写作
What is markdown? Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown ...
- 第2章 开始入手 —— 01 创建第一个 Android 应用程序
创建一个新的 Android 项目 操作步骤: (1) 选择 File | New | Android Application Project ,弹出 New Android Application ...
- VS 使用技巧
1.按下alt键,可以做到竖向选择 2.
- C#中的集合类——ArrayList
1. ArrayList与数组 数组的长度不可变,元素的类型单一: ArrayList 实际上相当于一个可变长度的动态数组,由于集合中的元素都是object类型,元素的类型可以有多种了:与数组一样, ...
- C语言之scarf函数
一 基本用法 scanf函数:接收用户的输入 语法: scanf("格式化控制符",地址列表); 例: int num; scanf("%d",&num ...
- 简述java程序中的main方法
简述main方法: 在java语言程序编写时都会涉及到一个main方法,它的格式为: public static void main(String[] args)(一般必须这么定义,这是java规范) ...
- JS的console使用
一,console输出的几种写法: console.error('错误信息') console.info('提示信息') console.warn('警告信息') console.log('普通信息' ...