{S0的}
开发iPhone&iPad应用
K.的克里斯托弗・费尔贝恩,约翰内斯Fahrenkrug和Ruffenach科林
苹果提供了一个类叫做NSXMLParser iPhone开发。解析XML时,开发人员使用这个类。这篇文章从显示,的NSXMLParser提供委托方法,每一个点的解析处理XML和基于DTD文件。
0;
为了节省您下次购买时使用促销代码code40project 40%,当您在{A2的}。
您可能也有兴趣??/ A>
苹果提供了一个类叫做NSXMLParser iPhone开发。解析XML时,开发人员使用这个类。几个开源替代品NSXMLParser许多开发商提供和使用,但我们要看看在委托可可标准XML分析器的方法。
没有LT; NSXMLParsergt;协议;如果你不知道,您不会收到任何警告在您创建的应用程序的头声明。 NSXMLParser是条纹设计类如下协议设计的原则,但并不,AOT明确定义的协议。 NSXMLParser对象有一个参数,称为委托需要加以界定。无论对象被定义为委托选项实施了20个不同的委托方法的集合。 NSXMLParser提供委托方法处理两个XML和每一个点的解析基于DTD的文件。
XML是一种文件类型,可容纳在一个很有条理的数据方式。作为一个快速的介绍,XML使用HTML语法,创造出独特的数据结构。一个XML元素,描述了一个人的例子显示在清单1。清单1中的XML的作者<Author>
<name>Collin Ruffenach</name>
<age>23</age>
<gender>male</gender>
<Books>
<Book>
<title>Objective C for the iPhone</title>
<year>2010</year>
<level>intermediate</level>
</Book>
</Books>
</Author>
XML是一种很常见的手段从线上来源获得数据如Twitter。 XML也被用来促进运行您所需的数据特定的iPhone项目。 iPhone的发展在很大程度上依赖于PLISTS。这些真的只是XML文件。
DTD表示文档类型定义。这是一个文档,将描述的XML结构,你会工作。 "7.4.3.1版本中的XML文档类型定义是:
对于某些应用程序,审查的XML它们的结构正在接受改变的方式,在其中的应用解析。在这在这种情况下,我们说,XML将包含一个元素称为作者。笔者将定义一个名字,年龄,性别,这将是简单的字符串。一个作家也将有一个book元素的列表。一部被定义为标题年度水平,都是简单的字符串。这确保了NSXMLParser知道该怎么做。
大多数的时候,你解析XML,你就会知道其结构时,写你的分析器类。对于这些情况下,你不会需要调查的XML提要DTD。这样的一个例子是Twitter的XML饲料的时间表。我们将假设我们知道我们的XML XML结构只有执行的的NSXMLParser委托的解析函数解析作者XML的,我们已经看了。解析NSXMLParser代表作家
实施NSXMLParser时的第一步是创建一个类将包含解析器对象,并执行其委托的方法。让,AOS创建一个新的观点为基础的项目称为Parser_Project和创建一个新的NSObject子类被称为分析器。我们要声明的唯一的实例变量Parser类是一个NSXMLParser和NSMutableString的帮助。使Parser.h外观像以下。#import <Foundation/
Foundation.h>
@interface Parser : NSObject <NSXMLParserDelegate>
{
NSXMLParser *parser;
NSMutableString *element;
}
@end
我们要需要有一个XML文件进行解析。你可以采取在清单2中的XML,并将其放置在一个普通的文本文件。将该文件保存为Sample.xml并添加到项目。这将为我们提供一个本地的XML文件我们可以引用解析。
现在,我们需要填写Parser.m。 parser.m将包含初始化和执行的三个最常见的NSXMLParser委托方法。让,AOS启动与初始化方法,并添加代码到2 XMLParser.m列出所示。清单2 Parser.m初始化{体C3}
在这里,我们要初始化NSXMLParser解析器使用的文件URL指向我们的sample.xml文件,我们刚才导入到我们的项目。的NSURL是一个大初始化各种类。在这种情况下,我们告诉我们将提供文件的URL,或本地资源的路径。与该做,我们告诉了NSXMLParser这个类将解析器的委托,最后,我们告诉我们的NSXMLParser准备发送解析考试解析。
parse方法一旦呼吁NSXMLParser,解析器将开始打电话给其委托的方法。解析器读取XML文件像拉丁/英文字符阅读:左到右,从上到下。而委托方法有很多,我们将重点放在他们三人。
{的C4}
虽然这种方法有很多参数传递给它,它
实际上是为我们的目的很简单。当这种方法被称为元素被认为是开始。这意味着,任何元素(之间的LT,GT ;)没有/。在此方法中,我们将首先打印元素,我们看到开始和我们将清除我们NSMutableString的元素。你将看到后,实施新方法,我们使用一个字符串,元素变量我们添加到委托方法被称为。元素的变量是指持有只有一个XML元素的值。所以,当一个新的元素开始,我们一定要清除它了。填写以下,这在清单3所示,委托方法。上市3 NSXMLParser方法{C5的}
这种方法被称为当一个元素被视为结束。这这意味着当一个元素/这个方法将被调用。这种方法是当NSMutableString的元素变量叫了一声就完成了。我们将简化打印出的价值,我们已经看到(见清单4)。列出4 NSXMLParser方法{5233}
调用此方法时,解析器看到东西之间的元素,,AOS开始和结束。作为一种方式,我们将使用这个入口点收集元素之间的所有字符,这是通过调用在appendString我们NSMutableString的方法。这样每次,这种方法被称为时间didEndElement方法被调用时,NSMutablrString就完成了。在此方法中,我们首先要确保我们已经初始化我们NSMutableString的元素,然后我们追加字符串,我们提供的,如清单5所示。列出5 NSXMLParser方法{C7-}
现在剩下要做的是创造我们的解析器的一个实例看看吧。去Parser_ProjectAppDelegate.m和添加中所示的代码列出6到现有的方法。清单6初始化解析器{C8的}
如果您运行的应用程序,并带来了终端窗口(移位苹果ŕ),应生成清单7所示的输出。清单7分析器输出Parser_Project[57815:207] Started Element Author
Parser_Project[57815:207] Started Element name
Parser_Project[57815:207] Found an element named: name with a
value of: Collin Ruffenach
Parser_Project[57815:207] Started Element age
Parser_Project[57815:207] Found an element named: age with a
value of: 23
Parser_Project[57815:207] Started Element gender
Parser_Project[57815:207] Found an element named: gender with a
value of: male
Parser_Project[57815:207] Started Element Books
Parser_Project[57815:207] Started Element Book
Parser_Project[57815:207] Started Element title
Parser_Project[57815:207] Found an element named: title with a
value of: Objective C for the iPhone
Parser_Project[57815:207] Started Element year
Parser_Project[57815:207] Found an element named: year with a
value of: 2010
Parser_Project[57815:207] Started Element level
Parser_Project[57815:207] Found an element named: level with a
value of: intermediate
Parser_Project[57815:207] Found an element named: Book with a
value of: intermediate
Parser_Project[57815:207] Found an element named: Books with a
value of: intermediate
Parser_Project[57815:207] Found an element named: Author with a
value of: intermediate
你可以看到,我们使用的NSXMLParser委托方法成功解析我们的XML文件中的所有信息。从这里,我们可以创建Objective-C对象代表XML,使用它我们整个应用。 XML处理是其重要组成部分,得到了大多数应用从某种网页源; Twitter客户端,新闻客户端,或YouTube的内容。总结
协议是为iPhone开发时,所有的地方。他们为广大的类的基础设计决定苹果公司提供。周到的编码,这些协议的使用使您的应用程序的效率和错误的证明。通过一个正确的认识和执行协议的设计方法,可以保证精心设计的应用程序。
NSXMLParser是一个边缘设计类,如下协议设计的原则,但不会,AOT明确定义的协议。 NSXMLParser对象有一个参数叫做委托,需要加以界定。无论对象被定义为委托已实施了20个不同的委托方法收集的选项。 NSXMLParser提供委托方法处理两个XML和每一个点的解析基于DTD的文件。
{A3的}这里,你可能会对一些其他曼宁职称兴趣:{S}
{A4纸}
布兰登Trebitowski,克里斯托弗・阿伦,和Appelcline香
160; {S2的}
熊体育卡希尔{中三}
{A6的}
保罗・克劳福德
最后更新:2011年8月27日,