Parsing XML in Swift

Mattepuffo's logo
Parsing XML in Swift

Parsing XML in Swift

In questo articolo vediamo come eseguire il parsing di un XML in Swift.

Per eseguire questo test ho creato un'applicazione CLI; anche perchè, come al solito quando si tratta di Apple, è sempre tutto più complicato.....

Comunque, per fare il parsing dobbiamo creare una classe che implementi NSObject e XMLParserDelegate.

Qui dentro abbiamo fatto l'override di tre funzioni:

  • parser (in una delle sue forme)
  • parserDidStartDocument
  • parserDidEndDocument

Qui sotto un esempio completo:

import Foundation

class MyParser : NSObject, XMLParserDelegate {


    func parser(
        _ parser: XMLParser,
        foundCharacters string: String
    ) {
        if (string.trimmingCharacters(in: .whitespacesAndNewlines) != "") {
            print(string)
        }
    }
    
    func parserDidStartDocument(_ parser: XMLParser) {
        print("INIZIO DOCUMENTO XML")
        print("-----")
    }

    func parserDidEndDocument(_ parser: XMLParser) {
        print("-----")
        print("FINE DOCUMENTO")
    }

}

let xmlContent =
"""
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <libro>
        <titolo>IT</titolo>
    </libro>
    <libro>
        <titolo>Sahara</titolo>
    </libro>
</root>
""";

let xmlData = Data(xmlContent.utf8)
let xmlParser = XMLParser(data: xmlData)
let myParser = MyParser()
xmlParser.delegate = myParser
xmlParser.parse()

Enjoy!


Condividi

Commentami!