博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用NSXMLParser解析XML
阅读量:6540 次
发布时间:2019-06-24

本文共 2475 字,大约阅读时间需要 8 分钟。

工程截图:

ViewController.h

// //  ViewController.h //  NSXMLParserDemo // //  Created by Fox on 12-3-15. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import 
@interface ViewController : UIViewController
- (void)parseXMLFileAtURL:(NSURL *)URL parseError:(NSError **)error; @end

ViewController.m

// //  ViewController.m //  NSXMLParserDemo // //  Created by Fox on 12-3-15. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // /*  
*/ #import "ViewController.h" @implementation ViewController - (void)viewDidLoad {
NSLog(@"viewDidLoad"); [super viewDidLoad]; NSMutableString *Strxml=[NSMutableString stringWithString:@"
"]; NSData *data=[NSData dataWithBytes:[Strxml UTF8String] length:[Strxml length]]; NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; //设置XML数据 [parser setDelegate:self]; [parser setShouldProcessNamespaces:NO]; [parser setShouldReportNamespacePrefixes:NO]; [parser setShouldResolveExternalEntities:NO]; [parser parse];//开始解析 } #pragma mark NSXMLParserDelegate methods /* *开始解析XmL */ - (void)parserDidStartDocument:(NSXMLParser *)parser {
// 解析开始时的处理 NSLog(@"parserDidStartDocument"); } /* *遍历xml节点 */ - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
NSLog(@"didStartElement"); NSLog(@"Element:%@",elementName); //NSLog(@"qualifiedName:%@",qName); if (qName) {
elementName = qName; } if ([elementName isEqualToString:@"user"]) {
// 输出属性值 NSLog(@"Name is %@ , Age is %@", [attributeDict objectForKey:@"name"], [attributeDict objectForKey:@"age"]); } } /* *当遇到结束标记时,调用该方法 */ - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
NSLog(@"didEndElement"); NSLog(@"EndElement:%@",elementName); //NSLog(@"qualifiedName:%@",qName); if (qName) {
elementName = qName; } } /* *当xml节点有值时,调用此函数 */ - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
NSLog(@"foundCharacters"); NSLog(@"Value:%@",string); } /* *结束XML解析 */ - (void)parserDidEndDocument:(NSXMLParser *)parser {
NSLog(@"parserDidEndDocument"); } @end

运行结果:

转载地址:http://ausdo.baihongyu.com/

你可能感兴趣的文章
《算法基础》——1.5实际因素
查看>>
《Java数字图像处理:编程技巧与应用实践》——第3章 基本Swing UI组件与图像显示 3.1 JPanel组件与BufferedImage对象的显示...
查看>>
为什么有人讨厌 Google 的新 Logo?
查看>>
腾讯2017暑期实习编程题3
查看>>
Intellij IDEA 构建Spring Web项目 — 用户登录功能
查看>>
[AHOI2013]作业
查看>>
git push被忽略的文件 处理
查看>>
C#中用ILMerge将所有引用的DLL打成一个DLL文件
查看>>
PHP生成HTML静态页面
查看>>
Makefile 中:= ?= += =的区别【转】
查看>>
使用makecontext实现用户线程【转】
查看>>
Comet:基于 HTTP 长连接的“服务器推”技术
查看>>
BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
查看>>
四种方法校验数组中是否包含某个指定的字符串
查看>>
29、Java并发性和多线程-非阻塞算法
查看>>
安装OpenResty开发环境
查看>>
第0课 从0开始
查看>>
hadoop无法启动DataNode问题
查看>>
java泛型中<?>和<T>区别
查看>>
这里是指推送通知跟NSNotification有区别:
查看>>