2

我有以下 XML 字符串。我正在尝试使用 XMLMapper(第 3 方库)进行解析。

我需要创建数组

xml如下;

<RandomDecimals>
<decimal>98258979</decimal>
<decimal>1000002218</decimal>
<decimal>1000002102</decimal>
<decimal>1000005713</decimal>
<decimal>1000002035</decimal>
<decimal>1000001434</decimal>
<decimal>1000001066</decimal>
<decimal>1000001498</decimal>
<decimal>1000002313</decimal>
<decimal>1000016914</decimal>
<decimal>1000017021</decimal>
<decimal>1000019039</decimal>
<decimal>52373625</decimal>
</RandomDecimals>

解析为对象的代码如下;

class DecimalElement: XMLMappable {
    var nodeName: String!

    var decimal: String?

    required init(map: XMLMap) {

    }

    func mapping(map: XMLMap) {
        decimal <- map["decimal"]
    }
    }

    class Response: XMLMappable {
    var nodeName: String!

    var shouldReset: Bool!
    var randomDecimals: [DecimalElement]?

    required init(map: XMLMap) {

    }

    func mapping(map: XMLMap) {
        randomDecimals <- map["RandomDecimals.decimal"]
        shouldReset <- map["ShouldReset"]

    }

作为总结,我需要将小数放入 randomDecimals 数组。但我需要用XMLMapper.

我究竟做错了什么?

BR,

埃尔登

4

1 回答 1

1

如果您的 XML 看起来像这样:

<root>
    <ShouldReset>true</ShouldReset>
    <RandomDecimals>
        <decimal>98258979</decimal>
        <decimal>1000002218</decimal>
        <decimal>1000002102</decimal>
        <decimal>1000005713</decimal>
        <decimal>1000002035</decimal>
        <decimal>1000001434</decimal>
        <decimal>1000001066</decimal>
        <decimal>1000001498</decimal>
        <decimal>1000002313</decimal>
        <decimal>1000016914</decimal>
        <decimal>1000017021</decimal>
        <decimal>1000019039</decimal>
        <decimal>52373625</decimal>
    </RandomDecimals>
</root>

然后,您可以通过替换来解决您的问题:

var randomDecimals: [DecimalElement]?

和:

var randomDecimals: [String]?

在你的Response课上。

class Response: XMLMappable {
    var nodeName: String!

    var shouldReset: Bool!
    var randomDecimals: [String]?

    required init(map: XMLMap) {

    }

    func mapping(map: XMLMap) {
        randomDecimals <- map["RandomDecimals.decimal"]
        shouldReset <- map["ShouldReset"]
    }
}

您还可以使用Array直接Int64映射十进制数字:

var randomDecimals: [Int64]?

希望这可以帮助。

于 2018-02-01T14:46:16.903 回答