快速解析 XML

Posted

技术标签:

【中文标题】快速解析 XML【英文标题】:XML parsing in swift 【发布时间】:2014-11-03 20:48:01 【问题描述】:

有人可以帮助我为什么下面的代码不起作用..我正在 Xcode.1 Playground 中测试它

let url:NSURL! = NSURL(fileURLWithPath:"file:///Users/sss/Documents/app.xml")

var xml = NSXMLParser(contentsOfURL: url)

xml?.parse()

【问题讨论】:

【参考方案1】:

游乐场是沙盒的,因此您不能只从用户文件夹中的任何位置抓取文件。以下是将该文件添加到您的 Playground 以使其可访问的方法:

    在 Finder 中找到您的“.playground”文件 右键单击并选择“显示包内容” 您应该会看到“timeline.xctimeline”、“contents.xcplayground”和“section-1.swift” 创建一个名为“Resources”的新文件夹 将“app.xml”复制到新文件夹中

现在您的文件将在沙箱中可用。您可以从包中检索它并将其加载到 NSXMLParser 中,如下所示:

let url: NSURL! = NSBundle.mainBundle().URLForResource("app", withExtension: "xml")
var xml = NSXMLParser(contentsOfURL: url)

【讨论】:

嗨,Nate Cook 非常感谢您的大力帮助。现在我明白游乐场是一个沙盒环境。但是你能告诉我为什么同样的 3 行代码不能在 Mac OS X 应用程序上运行吗?实际上我在我的 mac 应用程序中有一个要求,我必须解析用户从 NSOpenPanel 选择的 xml 文件 错过了您的跟进,抱歉!如果您仍然遇到此问题,您可以发布一个新问题吗?我对NSOpenPanel 和 OS X 沙盒并不十分熟悉。 如果您在进行这些更改时打开了 Playground 文件,请记住在尝试访问 Resources 文件夹中的文件之前关闭并重新打开它。

以上是关于快速解析 XML的主要内容,如果未能解决你的问题,请参考以下文章

快速、轻量级的 XML 解析器 [关闭]

用于解析和操作HTML和XML的快速、灵活和优雅的库。

快速解析超大XML不占用太大内存

如何快速解析xml以及灵活定义key查找信息

[XML-Jsoup]Jsoup_解析_快速入门

XML快速入门的保姆级教程!!!