3

我正在使用 Swift 4 的 pod

pod 'SWXMLHash', '~> 4.0.0'
pod 'Alamofire', '~> 4.5'

当我使用以下代码解析 XML 时,出现错误:

Type 'XMLIndexer' does not conform to protocol 'Sequence'

代码:

Alamofire.request("https://itunes.apple.com/us/rss/topgrossingapplications/limit=10/xml").response { response in
            debugPrint(response)

            guard let data = response.data else {
                return
            }

            let xml = SWXMLHash.parse(data)
            let nodes = xml["feed"]["entry"]
            for node in nodes {
                print(node["title"].text)
            }
        }

我正在尝试从 iTunes XML URL 上方访问“条目”标签列表。如果有任何方法可以访问和初始化类/结构中的条目列表,请帮助。

4

2 回答 2

3

根据您需要添加的文档all

Alamofire.request("https://itunes.apple.com/us/rss/topgrossingapplications/limit=10/xml").response { response in
        debugPrint(response)

        guard let data = response.data else {
            return
        }

        let xml = SWXMLHash.parse(data)
        let nodes = xml["feed"]["entry"]
        for node in nodes.all {
            print(node["title"]?.text)
        }
    }
于 2018-01-03T13:11:23.790 回答
1

另一个解决方案是使用Fuzi,它基于Ono框架,得到了很好的支持。

以下代码段将打印标题:

Alamofire.request("https://itunes.apple.com/us/rss/topgrossingapplications/limit=10/xml").responseString { response in
    guard let xml = try? XMLDocument(string: response.value ?? "") else {
        return
    }
    guard let feed = xml.root else {
        return
    }
    for entry in feed.children(tag: "entry") {
        let title = entry.firstChild(tag: "title")?.stringValue ?? ""
        print(title)
    }
}
于 2018-01-03T13:06:19.677 回答