ElementException的SimpleXML问题 - 没有匹配

问题描述 投票:0回答:1

输入XML:

<DeviceInfo dpId="..." rdsId="..." rdsVer="..." dc="..." mi="..." mc="...">
<additional_info>
<Param name="..." value="..." />
<Param name="..." value="..." />
</additional_info>
</DeviceInfo>

实体DeviceInfo

@Root(name="DeviceInfo")
public class DeviceInfo {

        // Mandatory
        @Attribute(name="dpId")
        public String DpId;
        @Attribute(name="rdsId")
        public String RdsId;
        @Attribute(name="rdsVer")
        public String RdsVer;
        @Attribute(name="dc")
        public String Dc;
        @Attribute(name="mi")
        public String Mi;
        @Attribute(name="mc")
        public String Mc;

        @Element (name="additional_info")
        public AdditionalInfo AdditionalInfo;

        // Constructor
        // ...
        // Getter & Setter
        // ...

        public static class AdditionalInfo
        {
            @ElementList(name="Param",entry="Parameters", inline = true)
            public List<DeviceInfoParam> Parameters;

            AdditionalInfo()
            {
            }
        }

        public static class DeviceInfoParam
        {
            @Attribute(name="name")
            public String Name;
            @Attribute(name="value")
            public String Value;

            DeviceInfoParam()
            {
            }
        }

}

问题:W / System.err:org.simpleframework.xml.core.ElementException:元素'Param'在第3行的类x.x.entities.DeviceInfo $ AdditionalInfo中没有匹配项

问题:实体中缺少什么(我无法更改XML!)?我尝试了各种各样的变体,包括元素而不是元素列表,添加条目,内联等。

android xml simple-framework
1个回答
0
投票

在您的注释中,您需要添加required = false。这样就可以在没有匹配时跳过它。例如:

@ElementList(name="Param",entry="Parameters", inline = true, required = false)
        public List<DeviceInfoParam> Parameters;
© www.soinside.com 2019 - 2024. All rights reserved.