gpt4 book ai didi

xml - 使用 SWXMLHash for Swift 遍历 XML 文件

转载 作者:搜寻专家 更新时间:2023-10-31 08:27:10 25 4
gpt4 key购买 nike

这是我的代码块,

var a = 0;

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in

if error != nil {
println("error=\(error)")
return
}

responseString = NSString(data: data, encoding: NSUTF8StringEncoding)!

let xmlWithNamespace = responseString
var xml = SWXMLHash.parse(xmlWithNamespace)

var entity = xml["row"]["ftc"]["Entity"][a]

if entity.element?.attributes["ID"] != nil {

entity = xml["row"]["ftc"]["Entity"][a]
//println(a)

println(entity.element?.attributes["ID"])
a++
} else {
println("Print We Have Reached Our Limit")
}

}
task.resume()

我试图让一个迭代器遍历并打印出其中的所有子项和属性,并将它们存储在一个变量中。

我一直在到处寻找帮助,但 Swift 和 XML 令人头疼 - 任何帮助我遍历节点的帮助都会很棒,我尝试使用 while 循环,但它在给我之后让程序崩溃了节点。

我正在尝试使用这个 while 循环,但即使那样也行不通,

while entity.element?.attributes["ID"] != nil {
entity = xml["row"]["ftc"]["Entity"][a]
//println(a)

println(entity.element?.attributes["ID"])
a++
break
}

帮助将不胜感激。

最佳答案

我知道这个答案会在几个月后出现,但是在发布这个问题时您可能一直在使用旧版本的 SWXMLHash。我 added a new method到名为 children 的 SWXMLHash,它允许您枚举子元素。鉴于此,您可以使用递归遍历所有元素。

这是一个可能有用的代码片段:

let xml = SWXMLHash.parse(xmlWithNamespace)

func enumerate(indexer: XMLIndexer, level: Int) {
for child in indexer.children {
var name = child.element!.name
println("\(level) \(name)")

enumerate(child, level + 1)
}
}

enumerate(xml, 0)

您也可以通过这种方式获取每个元素的属性。

关于xml - 使用 SWXMLHash for Swift 遍历 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com