Objective c 用Cocoa解析XML数据
我正在使用iTunes菜单栏控制器,我想获得用户库中所有歌曲的名称。我发现有一个名为Objective c 用Cocoa解析XML数据,objective-c,xml,cocoa,Objective C,Xml,Cocoa,我正在使用iTunes菜单栏控制器,我想获得用户库中所有歌曲的名称。我发现有一个名为iTunes Library.XML的XML文件。它保存了iTunes的所有数据(姓名、艺术家、唱片集等),我希望能够访问这些数据以在控制器中使用 我真的从来没有用XML做过这么简单的事情 我也是objective-C的noob,所以要非常简单…关于扫描xml信息,您需要了解两件事。一个名为xpath,另一个名为xquery。从表面上看,它们基本上都是创建正则表达式以获取xml数据不同部分的方法。谷歌搜索xpat
iTunes Library.XML的XML文件。
它保存了iTunes的所有数据(姓名、艺术家、唱片集等),我希望能够访问这些数据以在控制器中使用
我真的从来没有用XML做过这么简单的事情
我也是objective-C的noob,所以要非常简单…关于扫描xml信息,您需要了解两件事。一个名为
xpath
,另一个名为xquery
。从表面上看,它们基本上都是创建正则表达式以获取xml数据不同部分的方法。谷歌搜索xpath应该会提供许多例子来创建您可以想象的任何类型的表达式NSXMLParser
是一个Cocoa类,它可以创建解析器对象,并具有方法nodesForXPath
,该方法将使用xpath
查询收集结果并将其存储在数组中
苹果的开发文档我很确定iTunesXML库是一个XML PLIST字典。通过阅读NSDictionary并使用+dictionaryWithCintentsOf…:class方法,然后仅通过其键导航结构,可以省去一些麻烦
如果您使用Xcode工具附带的属性列表编辑器应用程序打开它,您可以直观地探索它的结构,这将使您了解如何以编程方式导航DICT和数组。NSXMLParser似乎有点过于复杂。我相信这只是一本词典。我怀疑这个文件太大了,您可能会从解析器的工作中受益匪浅。这对于小xml文件可能很有用,但对于较大的文件(超过几兆字节),这将导致较大的内存占用。不久前,我不得不做一些类似的事情,解析xml文件大大减少了应用程序使用的内存量。没错,但如果你说的是Mac OS X,是否有人的库足够大,足以引起实际问题?我对此表示怀疑。