“如何解析链接”;href";Swift中XML的标记?

“如何解析链接”;href";Swift中XML的标记?,xml,swift,parsing,Xml,Swift,Parsing,我正在使用Swift 3.0中的一个应用程序解析XML文件,并通过标签显示一些属性。除了我试图解析XML中包含 标签。当我尝试这样做时,应用程序崩溃,我收到一条“致命错误:索引超出范围”消息。 以下是我正在使用的XML: 这是我的代码: func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attribut

我正在使用Swift 3.0中的一个应用程序解析XML文件,并通过标签显示一些属性。除了我试图解析XML中包含
标签。当我尝试这样做时,应用程序崩溃,我收到一条“致命错误:索引超出范围”消息。 以下是我正在使用的XML: 这是我的代码:

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
    }
}

我想要的元素是
标记内部的link href标记。我不知道如何正确解析这一部分,因为它的格式与其他标记不同(
,等等)。有人能解释一下吗?

这是一个解决方法,但请检查xml文档id标记也包含url


我也有同样的问题。唧唧唧唧

在您的
didStartElement
方法中,您可以通过参数
attributeDict
访问该属性,该参数应返回
[“href”:“www.whatever.com”]

找到了答案


这是Tanksale的CS320期中考试吗?不管怎样,祝你好运

哈,真的!我想知道,在寻求帮助时,这个班是否有人会发现这个问题。谢谢