私はXMLファイルを解析し、ラベルを介して属性の一部を表示するSwift 3.0のアプリケーションに取り組んでいます。そのほとんどが正しく動作していますが、 <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>
など)のようにフォーマットされていないので、この部分を正しく解析する方法についてはわかりません。
ハァー、それは確かです!そのクラスの人が助けを求めるときにこの質問を見つけることができるのだろうかと思っていました。ありがとう! –