使用swxmlhash将xml转换为自定义类型时出现问题

时间:2017-01-25 10:08:50

标签: ios xml swift3 swxmlhash

尝试转换以下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()
        )
    }
}

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

1 个答案:

答案 0 :(得分:0)

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

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")
         )
    }
}

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