Swift:
XML:n käsittely

Kuinka:

Swift tarjoaa XMLParser- ja XMLDocument-luokat XML-tietojen jäsentämiseen. Tässä on pätkä yksinkertaisen XML-merkkijonon jäsentämiseen:

import Foundation

let xmlString = """
<?xml version="1.0" encoding="UTF-8"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Älä unohda perjantain juhlaa!</body>
</note>
"""

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

Voit myös tuottaa XML:ää käyttämällä XMLDocument-luokkaa:

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))

Esimerkkituloste:

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

Syväsukellus

XML eli Laajennettava Merkintäkieli on ollut olemassa 90-luvun lopulta lähtien. Se on sanallinen mutta ihmisen luettavissa, mikä tekee siitä sopivan vaihtoehdon monimutkaisten tietorakenteiden kannalta. Swiftin XML-jäsennyskyvyt eivät ole yhtä kehittyneitä kuin Pythonin ElementTree:ssa tai Javan JAXB:ssä, mutta ne ajavat asiansa perustarpeisiin.

Uusissa järjestelmissä usein suositaan vaihtoehtoja kuten JSON, joiden rakenne on kevyempi ja jäsentimet vähemmän monimutkaisia, mutta XML on edelleen merkittävä monissa yritys- ja perintöjärjestelmissä.

Swiftissä XML:n käsittelyn yhteydessä XMLParser on suoratoistoon perustuva jäsentäjä, mikä tarkoittaa, että se lukee XML-dokumentin sekventiaalisesti. Suurten XML-tiedostojen kohdalla tämä on muistitehokasta. Jos kuitenkin etsit yksinkertaisuutta ja XML-tietosi on kohtuullisen pieni, XMLDocument-luokan käyttäminen voi olla suoraviivaisempi vaihtoehto.

Katso Myös