使用 SwiftParsec 的简单 XMLRPC 解析器

SwiftXMLRPC

SwiftXMLRPC 是 XMLRPC 的轻量级解析器。

在后台,这个项目使用 SwiftParsec 来解析 XML。

所有类型都支持序列化和反序列化。

用法

解析

// success(SwiftXMLRPC.XMLRPC.Response.params([SwiftXMLRPC.XMLRPC.Parameter.double(1.0)]))
print(
    XMLRPC.Response.deserialize(
        from: """
        <?xml version="1.0" encoding="UTF-8"?><methodResponse><params><param><value><double>1.0</double></value></param></params></methodResponse>
        """,
        sourceName: "https://examplewebsite.com/XMLRPC"
    )
)

序列化

let xml = XMLRPC.Call(
    method: "example.method",
    params: [
        .struct(
            [ "first": .string("item"),
              "second": .array([.double(1e9)]),
              "third": .date(Date())
            ]
        )
    ]
).serialize()

测试

测试是用 SwiftCheck 编写的,并利用往返来捕获错误。

GitHub

查看 Github