Swift:
Работа с XML
Как:
Swift предоставляет XMLParser
и XMLDocument
для разбора данных XML. Вот фрагмент для разбора простой строки XML:
import Foundation
let xmlString = """
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget the party on Friday!</body>
</note>
"""
if let xmlData = xmlString.data(using: .utf8) {
let parser = XMLParser(data: xmlData)
parser.delegate = someParserDelegate // Ваш XMLParserDelegate
parser.parse()
}
Вы также можете генерировать XML с помощью 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))
Пример вывода:
<note>
<to>Tove</to>
</note>
Глубокое Погружение
XML, или Расширяемый Язык Разметки, существует с конца 90-х. Он многословен, но читаем для человека, что делает его подходящим для сложных структур данных. Возможности Swift по разбору XML не так развиты, как возможности ElementTree в Python или JAXB в Java, но они выполняют свою задачу для базовых нужд.
Альтернативы, такие как JSON, часто предпочитают в новых системах из-за их меньшего веса и более простых парсеров, но XML по-прежнему занимает видное место во многих корпоративных и устаревших системах.
При работе с XML в Swift, XMLParser
является парсером на основе потока, что означает, что он последовательно читает документ XML. Для больших файлов XML это эффективно с точки зрения использования памяти. Однако, если вы ищете простоту и ваши данные XML относительно небольшие, использование XMLDocument
может быть более простым.