返回首页

{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日,

回答

评论会员:游客 时间:2012/02/04
GParkings:在Word2003(我敢肯定更高版本以及)有文件"菜单下的选项:"文件-发送-"邮件收件人"使用,这将有可能挽救你的同事和你大量的时间。它不压缩的文件,但谁在乎呢?可能要解决这一点,在你的文章。最良好的祝愿,大卫{A7的}
GanesanSenthilvel
评论会员:游客 时间:2012/02/04
嗯,感谢大卫,其实我不知道imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif的感谢马里兰州Marufuzzaman我不会说我已经失败了1000次,我会说,我已经发现了1000的方式,可能会导致失败托马斯・爱迪生
恕我直言:标题似乎没有给一个快速的总结??您的文章。你把这篇文章的一段时间,以便更好的标题会做很多的司法
评论会员:游客 时间:2012/02/04
沃尔特博览会,小:感谢您的宝贵意见,我也觉得自己这方面的感谢马里兰州Marufuzzaman我不会说我已经失败了1000次,我会说,我已经发现了1000的方式,可能会导致失败托马斯・爱迪生:??