Swift:
Praca z XML

Jak to zrobić:

Swift zapewnia XMLParser oraz XMLDocument do analizy danych XML. Oto fragment kodu do analizy prostego ciągu XML:

import Foundation

let xmlString = """
<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Przypomnienie</heading>
    <body>Nie zapomnij o imprezie w piątek!</body>
</note>
"""

if let xmlData = xmlString.data(using: .utf8) {
    let parser = XMLParser(data: xmlData)
    parser.delegate = someParserDelegate // Twój XMLParserDelegate
    parser.parse()
}

Możesz też generować XML za pomocą XMLDocument:

import Foundation

let note = XMLElement(name: "note")
let to = XMLElement(name: "to", stringValue: "Tove")
note.addChild(to)
let xmlDoc = XMLDocument(rootElement: note)

print(xmlDoc.xmlString(options: .nodePrettyPrint))

Przykładowy wynik:

<note>
  <to>Tove</to>
</note>

Pogłębiona analiza

XML, czyli Rozszerzalny Język Znaczników, istnieje od końca lat 90. Jest rozwlekły, ale czytelny dla człowieka, co czyni go dobrym wyborem dla skomplikowanych struktur danych. Możliwości analizy XML w Swifcie nie są tak rozbudowane jak te dostępne w Python’s ElementTree czy Java’s JAXB, ale wystarczają do zaspokojenia podstawowych potrzeb.

Alternatywy, takie jak JSON, są często preferowane w nowych systemach ze względu na ich mniejszą wagę i mniej skomplikowane parsery, ale XML jest nadal obecny w wielu systemach korporacyjnych i starszych.

Pracując z XML w Swifcie, XMLParser to parser oparty na strumieniach, co oznacza, że czyta dokument XML sekwencyjnie. Dla dużych plików XML jest to wydajne pod względem pamięci. Jednakże, jeśli szukasz prostoty i Twoje dane XML są raczej małe, użycie XMLDocument może być bardziej bezpośrednie.

Zobacz również