Swift:
XMLの扱い方
方法:
SwiftはXMLデータを解析するためのXMLParser
とXMLDocument
を提供しています。以下は、シンプルなXML文字列を解析するためのコードスニペットです:
import Foundation
let xmlString = """
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>金曜日のパーティーを忘れないで!</body>
</note>
"""
if let xmlData = xmlString.data(using: .utf8) {
let parser = XMLParser(data: xmlData)
parser.delegate = someParserDelegate // あなたのXMLParserDelegate
parser.parse()
}
また、XMLDocument
を使用してXMLを生成することもできます:
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年代後半から存在しています。XMLは冗長ですが人間が読める形式であるため、複雑なデータ構造に適しています。SwiftのXML解析機能は、PythonのElementTreeやJavaのJAXBに見られるものほど堅牢ではありませんが、基本的なニーズに対しては十分な仕事をこなします。
新しいシステムでは、その軽量性や解析器の複雑さが少ないため、JSONのような代替物がよく好まれますが、XMLは依然として多くのエンタープライズやレガシーシステムで際立っています。
SwiftでXMLを扱う場合、XMLParser
はストリームベースの解析器であり、XMLドキュメントを順次読み進めることを意味します。大きなXMLファイルの場合、これはメモリ効率が良いです。しかし、XMLデータが比較的小さく、シンプルさを求めている場合は、XMLDocument
を使用する方が直接的かもしれません。