Swift:
处理XML

如何操作:

Swift 提供了 XMLParserXMLDocument 来解析XML数据。这里有一个解析简单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年代末以来就已存在。它冗长但人类可读,使其适合复杂数据结构。Swift 的 XML 解析功能不如 Python 的 ElementTree 或 Java 的 JAXB 那样强大,但对于基本需求来说已经足够了。

由于它们的轻量级和解析器不那么复杂,新系统中常常更喜欢用像 JSON 这样的替代品,但 XML 在许多企业和遗留系统中仍然占有一席之地。

在 Swift 中处理 XML 时,XMLParser 是基于流的解析器,意味着它按顺序读取XML文档。对于大型 XML 文件,这种方式对内存是高效的。然而,如果你追求简单并且你的 XML 数据相对较小,使用 XMLDocument 可能会更直接。

另请参阅