Swift:
Att arbeta med XML

Hur man gör:

Swift tillhandahåller XMLParser och XMLDocument för att tolka XML-data. Här är ett kodsnutt för att tolka en enkel XML-sträng:

import Foundation

let xmlString = """
<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Påminnelse</heading>
    <body>Glöm inte bort festen på fredag!</body>
</note>
"""

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

Du kan också generera XML med hjälp av 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))

Exempel på utdata:

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

Fördjupning

XML, eller Extensible Markup Language, har funnits sedan slutet av 90-talet. Det är utförligt men läsbart för människor, vilket gör det lämpligt för komplexa datastrukturer. Swifts förmåga att tolka XML är inte lika robust som de som finns i Pythons ElementTree eller Javas JAXB, men de klarar sig för grundläggande behov.

Alternativ som JSON föredras ofta i nya system på grund av deras lägre vikt och mindre komplexa tolkare, men XML är fortfarande framträdande i många företag och äldre system.

När man arbetar med XML i Swift, är XMLParser en ström-baserad tolkare vilket betyder att den läser igenom XML-dokumentet sekventiellt. För stora XML-filer är detta minneseffektivt. Men om du letar efter enkelhet och din XML-data är rimligen liten, kan användning av XMLDocument vara mer rakt på sak.

Se även