objective-c – 在Cocoa中解析XML

objective-c – 在Cocoa中解析XML,第1张

概述今天我正在研究如何在Cocoa(用于桌面)中制作一个简单的XML解析器。我正在考虑使用NSXMLParser解析数据,但不太确定从哪里开始。 Web上的XML文件没有太多的数据,只是一个简单的列表,我需要保存一个变量。有没有人对如何做到这一点有任何建议,因为关于这个的在线文档没有太多的意义。 感谢任何帮助! 编辑我想要创建XML解析器的原因是从服务器上的MYSQL数据库获取信息到客户端应用程序。如 今天我正在研究如何在Cocoa(用于桌面)中制作一个简单的XML解析器。我正在考虑使用NSXMLParser解析数据,但不太确定从哪里开始。 Web上的XML文件没有太多的数据,只是一个简单的列表,我需要保存一个变量。有没有人对如何做到这一点有任何建议,因为关于这个的在线文档没有太多的意义。

感谢任何帮助!

编辑我想要创建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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1038092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存