//
// 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解析工具的更多相关文章

  1. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  2. Hpple -- 一个 HTML 解析工具

    在开发中,大部分会使用 JSON 进行数据解析,偶尔会用到 HTML. 使用 Objective-C 解析 HTML 或者 XML,系统自带有两种方式一个是通过 libxml,一个是通过 NSXMLP ...

  3. xml解析工具-jdom

    前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...

  4. Java -- XML解析工具dom4j

    前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...

  5. XML解析工具类

    public class XmlUtil { /* * 利用dom4j解析xml文件内容,并返回map数据形式 * path是.xml文件所在的路径 */ public static Map<S ...

  6. [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml

    转自:http://www.itdaan.com/blog/2017/02/20/301ad47832f4.html 由于windows环境下测试不稳定,博主选择在linux下进行的测试! Qt - ...

  7. xml解析工具mashaller javaee自带解析类

    1.怎样去掉Marshaller的格式化? : JAXBContext context = JAXBContext.newInstance(Entity.class); Marshaller mars ...

  8. java自带的xml解析工具类

    public class JaxbUtil { /** * java对象转换为xml文件 * * @param xmlPath xml文件路径 * @param load java对象.Class * ...

  9. iOS开发之网络数据解析(二)--XML解析简介

    前言:本篇随笔介绍的是XML解析. 正文: 1.XML解析方式有2两种: DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件 SAX:从根元素开始,按顺序一个元素一个元素往下解析,比 ...

随机推荐

  1. .Net程序员面试试题

    1:简述private protected public internal修饰符的访问权限? private:私有成员在类的内部可以访问: protected:受保护的成员,在类的内部和继承类中可以访 ...

  2. Trie树及其应用

    Trie树及其应用 Trie树 Trie树,又称单词查找树.字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经 ...

  3. PHP, Python Nginx works together!

    Nginx is so good at delivering requests to many others. Good! Now let's use the nginx upstream modul ...

  4. Markdown写作

    What is markdown? Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown ...

  5. 第2章 开始入手 —— 01 创建第一个 Android 应用程序

    创建一个新的 Android 项目 操作步骤: (1) 选择 File | New | Android Application Project ,弹出 New Android Application ...

  6. VS 使用技巧

    1.按下alt键,可以做到竖向选择 2.

  7. C#中的集合类——ArrayList

    1.  ArrayList与数组 数组的长度不可变,元素的类型单一: ArrayList 实际上相当于一个可变长度的动态数组,由于集合中的元素都是object类型,元素的类型可以有多种了:与数组一样, ...

  8. C语言之scarf函数

    一 基本用法 scanf函数:接收用户的输入 语法: scanf("格式化控制符",地址列表); 例: int num; scanf("%d",&num ...

  9. 简述java程序中的main方法

    简述main方法: 在java语言程序编写时都会涉及到一个main方法,它的格式为: public static void main(String[] args)(一般必须这么定义,这是java规范) ...

  10. JS的console使用

    一,console输出的几种写法: console.error('错误信息') console.info('提示信息') console.warn('警告信息') console.log('普通信息' ...