向元素添加属性

时间:2017-02-02 14:14:32

标签: java simple-framework

我正在使用SimpleXML来创建XML消息。我想创建以下消息:

<item>
  <carrier close="true">1234567</carrier>
</item>

我创建了相应的Java代码:

@Root(name="item")
public class Item {
    @Attribute(name="close")
    @Path("carrier")
    boolean closeCarrier;

    @Element
    private String carrier;
}

但是我收到了错误:

  

Element&#39; carrier&#39;也是类nl.example.Item

中的路径名

当我使用@Path("item/carrier")时,它会创建以下内容:

<item>
  <carrier close="true">1234567</carrier>
  <item>
      <carrier close="true" />
  </item>
</item>

1 个答案:

答案 0 :(得分:0)

最好用这里的类来映射结构。

Item会创建包装 <item>...</item>元素:

@Root(name="item")
public class Item
{
    @Element(name = "carrier", required = true)
    private Carrier carrier;

    // ...
}

Carrier包含实际

@Root(name = "carrier")
public class Carrier
{
    @Text
    private int value;
    @Attribute(name = "close")
    private boolean close;

    // ...
}

这将创建正确的XML。

如果Carrier不是公开的,您可以通过将其设为私有或内部类Item来隐藏它。