感谢任何帮助!
编辑我想要创建XML解析器的原因是从服务器上的MysqL数据库获取信息到客户端应用程序。如果除了XML解析器之外还有更好的方法,请让我知道!
解决方法 以下是它的工作原理:有一个类叫NSXMLParser。它用于解析XML文件。然而,NSXMLParser是愚蠢的。所有它知道如何做是解析XML,但它不知道它应该做什么与它找到的信息。
输入代表。代表就像一个保姆。由于XMLParser没有一个线索如何处理它发现的信息,它会去询问它的委托关于每一件事情:“嘿,我开始解析一个文件,我应该做什么吗? “嘿,我找到了一些cdaTA!我应该怎么做啊!” “嘿,我找到另一个标签!” “嘿!我找到了一个关闭标签!”等等。所有这些“嘿!”语句是委托方法,也就是说,它们是委托对象可以选择实现的可选方法。通常(但不总是),创建NSXMLParser的对象也是委托,但不一定是这样。
所以你可能会有这样的东西:
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:someURLToAnXMLfile];[parser setDelegate:self];[parser parse];[parser release];
然后在同一个对象(self)中,你可能有以下一些方法:
- (voID)parserDIDStartdocument:(NSXMLParser *)parser { //the parser started this document. what are you going to do?}- (voID)parser:(NSXMLParser *)parser dIDStartElement:(Nsstring *)elementname namespaceURI:(Nsstring *)namespaceURI qualifIEdname:(Nsstring *)qualifIEdname attributes:(NSDictionary *)attributeDict { //the parser found an XML tag and is giving you some information about it //what are you going to do?}- (voID)parser:(NSXMLParser *)parser foundCharacters:(Nsstring *)string { //the parser found some characters inbetween an opening and closing tag //what are you going to do?}- (voID)parserDIDEnddocument:(NSXMLParser *)parser { //the parser finished. what are you going to do?}
文档中列出了一大堆这些方法。只需转到NSXMLParser类引用,它们都列在“委托方法”部分下。一旦你得到它的悬念,NSXMLParser是很容易使用。这是一个SAX Parser,这意味着它是事件驱动的解析器。它找到东西,它告诉你。
总结以上是内存溢出为你收集整理的objective-c – 在Cocoa中解析XML全部内容,希望文章能够帮你解决objective-c – 在Cocoa中解析XML所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)