我正在研究Swift 3.0中的一個應用程序,該應用程序解析XML文件並通過標籤顯示一些屬性。除了當我嘗試解析包含 <link href = "..."/>
標記的XML部分時,大部分工作都正常。當我嘗試這樣做時,應用程序崩潰,並且出現「致命錯誤:索引超出範圍」消息。 下面是我使用的XML:https://alerts.weather.gov/cap/fl.php?x=0 這裏是我的代碼:如何從Swift中的XML解析鏈接「href」標籤?
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) {
if(elementName == "cap:event") {
titleFound = true
}
if(elementName == "cap:expires") {
descFound = true
}
if(elementName == "cap:severity") {
sevFound = true
}
if(elementName == "summary") {
summFound = true
}
if(elementName == "cap:effective") {
effFound = true
}
if(elementName == "cap:urgency") {
urgFound = true
}
if(elementName == "cap:certainty") {
certFound = true
}
if(elementName == "link") {
linkFound = true
}
}
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
if(elementName == "cap:event") {
titleFound = false
}
if(elementName == "cap:expires") {
descFound = false
}
if(elementName == "cap:severity") {
sevFound = false
}
if(elementName == "summary") {
summFound = false
}
if(elementName == "cap:effective") {
effFound = false
}
if(elementName == "cap:urgency") {
urgFound = false
}
if(elementName == "cap:certainty") {
certFound = false
}
if(elementName == "link") {
linkFound = false
}
}
我想要的元素是從<entry>
標籤內的鏈接href標記。我不知道如何正確解析這部分,因爲它沒有像其他標籤格式化(<cap:event>
,<cap:severity>
等)誰能闡明這一點?
哈,的確是!我想知道是否有人從這個班上找到這個問題,當尋求幫助。謝謝! –