XML专题:使用NSXMLParser解析xml文件
使用NSXMLParser解析xml文件
1. 设置委托对象,开始解析
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; //或者也可以使用initWithContentsOfURL直接下载文件,但是有一个原因不这么做:
// It's also possible to have NSXMLParser download the data, by passing it a URL, but this is not desirable
// because it gives less control over the network, particularly in responding to connection errors.
[parser setDelegate:self];
[parser parse];
2. 常用的委托方法
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict;
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName;
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError;
static NSString *feedURLString = @"http://www.yifeiyang.net/test/test.xml";
3. 应用举例
- (void)parseXMLFileAtURL:(NSURL *)URL parseError:(NSError **)error
{
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];
[parser setDelegate:self];
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
[parser parse];
NSError *parseError = [parser parserError];
if (parseError && error) {
*error = parseError;
}
[parser release];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString*)qName attributes:(NSDictionary *)attributeDict{
// 元素开始句柄
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
{
// 元素终了句柄
if (qName) {
elementName = qName;
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
// 取得元素的text
}
NSError *parseError = nil;
[self parseXMLFileAtURL:[NSURL URLWithString:feedURLString] parseError:&parseError];
http://blog.csdn.net/z251257144/article/details/7175634
转载于:https://www.cnblogs.com/geek6/p/3950949.html
XML专题:使用NSXMLParser解析xml文件相关推荐
- ios15使用NSXMLParser解析XML
ios15解析XML 今天我们使用NSXMLParser这个类解析XML. 解析的类必须遵守NSXMLParserDelegate代理. - (void)viewDidLoad {[super vie ...
- python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...
XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...
- java解析xml文档_Java解析xml文件
读xml文件: xml文件内容: Java Eclipse Swift Xcode C# Visual Studio 代码: package XMLParse; import java.io.File ...
- python etree模块所有函数详解_Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件,封装函数...
from xml.dom.minidom importparse, parseStringfrom xml.etree importElementTreeimportxml.dom.minidom&q ...
- java dom 解析xml 例子,Java DOM解析XML的幾個例子
Sample1: 1:新建XML文檔 books.xml,放到項目的根目錄下. xmlns="http://test.org/books"> Thinking in JAVA ...
- xml教程之java解析xml文档
1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...
- python解析xml生成代码_python解析xml模块封装代码
有如下的xml文件: 复制代码 代码如下: 1 2 下面介绍python解析xml文件的几种方法,使用python模块实现. 方式1,python模块实现自动遍历所有节点: 复制代码 代码如下: #! ...
- php xml 实例教程,php解析xml方法实例详解,解析xml实例详解_PHP教程
php解析xml方法实例详解,解析xml实例详解 本文以实例形式详细讲述了php解析xml方法.分享给大家供大家参考.具体分析如下: books.xml文件如下: Harry Potter J K. ...
- XML简介与Dom4j解析XML
文章目录 一.XML简介 1.什么是 XML 2.XML 的主要作用 3.XML 与 HTML 4.XML 属性 5.XML语法规则 二.Dom4j解析XML 1.树结构与xml文件的解析技术 1.1 ...
最新文章
- 2021年大数据ELK(二十二):采集Apache Web服务器日志
- Python字符串编码坑彻底详细解决 何梁
- python线下培训-济南Python线下培训班哪个好
- 安装vsftpd-3.0.2.tar.gz源码
- java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)
- 由电脑黑屏问题引发的探讨计算机底层原理
- 机房收费系统----可行性分析报告
- 在Linux下通过Wake On LAN实现网络唤醒远程开机
- 高斯噪声和椒盐噪声python
- UI设计灵感|高级黑网页首图就该这样设计
- Win-MASM64汇编语言-CMPXCHG指令
- 说三件可能你不知道的小事
- 回归系数t检验公式_最全物理公式合集,高考这一份就够了!
- SanDisk cz48 16G TLC U盘量产经验分享
- 去中介化的租房EOS DAPP,实现租客与房东互赢
- rust修改礼包时间_Rust Async: futures-timer源码解析
- 运用计算机巧记英语词汇,词根词缀法巧记考研英语词汇:词根graph-(写)
- 在国内用Windows给BT做种,真是一山绕过一山缠(附解决方案)
- 画E-R图·数据库笔记(四)
- MoviePy - 中文文档4-MoviePy实战案例-给MoviePy Logo做一个闪动的阴影效果