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!
swift xml xmlparser xmlparserdelegate nsobject
Commentami!