XMLParser.sharedParser.decode() in swift3

2020-01-29 18:14发布

问题:

I used this code XMLParser.sharedParser.decode() in swift2. But I migrate swift3 this code didn't work.

My code is here,

func xmppStream(_ sender: XMPPStream!, didReceive message: XMPPMessage!) {


    let result1 = XMLParser.sharedParser.decode(String(message))

    for (key, value) in result1 {

        let title = result1["title"]

    }

   if message.isChatMessage(){

       sms = String(message.body())
       if( sms == "" || message.body() == nil){

       }else{
           self.prefs.set(sms, forKey: "SMS")

       }
   }

}

回答1:

If you are using codes from this repo, unfortunately, it hasn't been upgraded to Swift 3.



回答2:

var event : DDXMLElement = message.forName("event", xmlns: "http://jabber.org/protocol/pubsub#event")!

            let items : [DDXMLElement] = event.elements(forName: "items")

            for i: DDXMLElement in items {

                var item  = i.elements(forName: "item")

                for j: DDXMLElement in item {
                    var xml = j.elements(forName: "xml")
                    for x : DDXMLElement in xml {
                        var about = x.elements(forName: "about")

                       debugPrint(about.cs_arrayValue().first?.stringValue)

                    }
                }

            }

After I added the above code, my problem is solved!