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 หรือ Extensible Markup Language มีมาตั้งแต่ปลายยุค 90’s มันเป็นรูปแบบที่กระชับแต่อ่านง่าย ทำให้มันเหมาะกับโครงสร้างข้อมูลที่ซับซ้อน Swift มีความสามารถในการแยกวิเคราะห์ XML ไม่เข้มข้นเหมือนกับที่พบใน ElementTree ของ Python หรือ JAXB ของ Java แต่ก็สามารถรับมือกับความต้องการพื้นฐานได้
ทางเลือกอย่าง JSON มักถูกนิยมในระบบใหม่ๆ เนื่องจากมีน้ำหนักเบาและตัวแยกวิเคราะห์ที่ไม่ซับซ้อน แต่ XML ยังคงมีความสำคัญในหลายระบบองค์กรและระบบเก่า
เมื่อทำงานกับ XML ใน Swift, XMLParser
เป็นตัวแยกวิเคราะห์แบบสตรีมซึ่งหมายความว่ามันอ่านผ่านเอกสาร XML อย่างเรียงตามลำดับ สำหรับไฟล์ XML ขนาดใหญ่นี่เป็นวิธีที่ประหยัดหน่วยความจำ อย่างไรก็ตาม หากคุณกำลังมองหาความง่ายและข้อมูล XML ของคุณมีขนาดไม่ใหญ่มาก การใช้ XMLDocument
อาจเป็นวิธีที่ง่ายกว่า