如何通过 NSXMLParser 加载 xml 文件
How to load xml file through NSXMLParser
我找到了 NSXMLParser
构造函数使用 URL 的示例,例如:
NSXMLParser(contentsOfURL: (NSURL(string:"http://images.apple.com/main/rss/hotnews/hotnews.rss")))!
但我找不到如何将它与项目中的 xml 文件一起使用。
要获取应用程序包中资源的路径,请使用 NSBundle
的 pathForResource:ofType:
方法,例如:
var path = NSBundle.mainBundle().pathForResource("MyFile", ofType: "xml")
您可以从路径创建文件 URL 并将其传递给 NSXMLParser
。
var parser: NSXMLParser?
let path = NSBundle.mainBundle().pathForResource("MyFile", ofType: "xml")
if path != nil {
parser = NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: path!))
} else {
NSLog("Failed to find MyFile.xml")
}
if parser != nil {
// Do stuff with the parser here.
}
Swift 已接受答案的 4 个版本
var parser : XMLParser?
if let path = Bundle.main.path(forResource: "File", ofType: "xml") {
parser = XMLParser(contentsOf: URL(fileURLWithPath: path))
if parser?.parse() ?? false {
}else {
print("Unable to parse")
}
}else {
print("File read error")
}
我找到了 NSXMLParser
构造函数使用 URL 的示例,例如:
NSXMLParser(contentsOfURL: (NSURL(string:"http://images.apple.com/main/rss/hotnews/hotnews.rss")))!
但我找不到如何将它与项目中的 xml 文件一起使用。
要获取应用程序包中资源的路径,请使用 NSBundle
的 pathForResource:ofType:
方法,例如:
var path = NSBundle.mainBundle().pathForResource("MyFile", ofType: "xml")
您可以从路径创建文件 URL 并将其传递给 NSXMLParser
。
var parser: NSXMLParser?
let path = NSBundle.mainBundle().pathForResource("MyFile", ofType: "xml")
if path != nil {
parser = NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: path!))
} else {
NSLog("Failed to find MyFile.xml")
}
if parser != nil {
// Do stuff with the parser here.
}
Swift 已接受答案的 4 个版本
var parser : XMLParser?
if let path = Bundle.main.path(forResource: "File", ofType: "xml") {
parser = XMLParser(contentsOf: URL(fileURLWithPath: path))
if parser?.parse() ?? false {
}else {
print("Unable to parse")
}
}else {
print("File read error")
}