我想在节标记中提取id的值。
节标记为:

[<stanza-id xmlns="urn:xmpp:sid:0" by="[email protected]" id="1531235744929009"></stanza-id>]


这是从Xmpp服务器收到的消息的一部分。我需要提取“ 1531235744929009”值。因此,我这样写:

var stanza = message.elements(forName: "stanza-id")
print(stanza)
var id = stanza.first?.attributes
if let attributes = stanza.first?.attributes {
     let lastItem = attributes.last
     if let stanzaID = lastItem?.stringValue {
          print("stanzaID = \(stanzaID)")
     }
}


该代码可以正常工作,但不是干净的代码。特别是在我写这行lastItem = attributes.last的地方,因为如果顺序更改,这将无法工作。

最佳答案

只需使用stanza.attributed(forName: String)

关于swift - 如何在Swift中从[DDXMLElement]中提取值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51268963/

10-09 02:36