我工作的一個遊戲,其中有在一個XML文件中描述的障礙圖案,讓我實現了這個類在我的SWIFT文件:的NSXMLParser解析()不工作
class PatternsParser: NSObject, NSXMLParserDelegate
{
var myParser: NSXMLParser!
var arrayOfPatterns = [Element]()
var currentId = 0
init(url: NSURL)
{
myParser = NSXMLParser(contentsOfURL: url)
println(myParser.parserError?)
super.init()
myParser.delegate = self
if myParser.parse()
{
println("Was able to parse")
}
}
func parser(parser: NSXMLParser!, parseErrorOccurred parseError: NSError!) {
println("error = \(parseError)")
}
我的其他快捷文件我寫了這個:
// this is just a function to return the document path I use to create the NSURL
func getXMLPath(pathName path:String) -> String?
{
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0] as String
let filePath: String? = documentsDirectory?.stringByAppendingPathComponent(path)
return filePath
}
let buffer: NSURL! = NSURL(fileURLWithPath: getXMLPath(pathName:"patterns.xml"))
var patternParser = PatternsParser(url:buffer)
不過,我得到的是myParser.parse()
始終沒有返回,甚至因此parserError屬性不告訴我任何東西(爲零)。我也試過如果你想看看在patterns.xml文件執行方法parseErrorOcurred
和validationErrorOcurred
,但沒有...
,那就是:
<?xml version="1.0"?>
<game>
<pattern id="0" difficulty="0" width="800">
<coinArea>
<rect x="100" y="470,5" width="12" height="5"/>
</coinArea>
</pattern>
<pattern id="1" difficulty="1" width="600">
<coinArea>
<rect x="100" edge="up" width="8"/>
</coinArea>
<wall orientation="vertical" texture="wallText">
<rect x="300" edge="down"/>
</wall>
</pattern>
<pattern id="2" difficulty="1" width="750">
<wall orientation="vertical" texture="wallText">
<rect edge="down" x="25"/>
</wall>
<wall orientation="vertical" texture="wallText">
<rect edge="up" x="60"/>
</wall>
<electricLine orientation="horizontal">
<rect edge="up" x="0"/>
</electricLine>
</pattern>
</game>
你檢查了URL的內容以及文件是否真的存在嗎? – 2014-12-11 01:03:39
該URL看起來是正確的,並且該文件當然存在,與我的其餘文件在同一文件夾中 – 2014-12-11 01:06:27
這看起來對我而言不是有效的XML ... http:// stackoverflow。com/questions/5042902/xml-error-there-are-multiple-root-elements – borrrden 2014-12-11 02:02:56