小编Jul*_*ian的帖子

使用 XMLParser 在 Swift 中解析带有实体的 XML

在 Swift 中使用 XMLParser 处理文档时,有没有办法扩展 XML 实体?我在 API 中没有看到任何内容,但我很难相信这是一个奇怪的要求。

如果直接从 Swift 使用 libxml2 API,则可以完成此操作,库通过字符回调提供扩展实体,就像它内联出现一样。

这是我的示例代码:

let xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
    "<!DOCTYPE simple [" +
    "<!ENTITY e \"entity\">" +
    "]>" +
    "<root><val>&e;</val></root>"

class ParserDelegate : NSObject, XMLParserDelegate {
    var entities = [String:String?]()
    var text: String?

    func parser(_ parser: XMLParser, foundInternalEntityDeclarationWithName name: String, value: String?) {
        self.entities[name] = value
    }

    func parser(_ parser: XMLParser, foundCharacters string: String) {
        text = text == nil ? string : self.text! + string
    } …
Run Code Online (Sandbox Code Playgroud)

xml xml-parsing swift swift3

5
推荐指数
0
解决办法
1179
查看次数

标签 统计

swift ×1

swift3 ×1

xml ×1

xml-parsing ×1