1

我正在尝试转换以下 xml 标记:

<MTag media="wifi">122</MTag>

到等效类型,但无法从提供的示例中找到任何方法来做到这一点。

试过,

struct Profile: XMLIndexerDeserializable {
// some other elements...
    let MTag: MTagElement

    static func deserialize(_ node: XMLIndexer) throws -> Profile{
         return try SMCPreferenceProfile(
            updateInterval: node["MTag"].value()
         )
    }
}

相应地,

struct MTagElement: XMLIndexerDeserializable {
    let media: String
    let value: Int

    static func deserialize(_ node: XMLIndexer) throws -> MTagElement{
        return try MTagElement(
            media: node.value(ofAttribute: "media"),
            value: node["MTag"].value()
        )
    }
}

这无论如何都是错误的。将以下标记转换为其等效自定义类型的方法是什么?

4

1 回答 1

1

我试图将属性值放在单独的属性中。

struct Profile: XMLIndexerDeserializable {
// some other elements...
    let mTag: Int
    let mTagMedia: String

    static func deserialize(_ node: XMLIndexer) throws -> Profile{
         return try SMCPreferenceProfile(
            mTag: node["MTag"].value(),
            mTagMedia: node["MTag"].value(ofAttribute: "media")
         )
    }
}

如果有其他方法可以正确解决此问题,请告知。

于 2017-01-25T11:24:03.850 回答