读入空元素

时间:2013-05-15 12:04:48

标签: java xml simple-framework

我正在尝试使用Simple XML框架解析Java中的Iptables XML配置。

我很难读取ACTIONS中的元素,比如在这段配置中:

   <actions>
       <DROP  />
   </actions>

如何在我的Java中检查XML文件中是否存在DROP元素?

2 个答案:

答案 0 :(得分:1)

假设actions映射到类似于此类的类:

@Root(name = "actions")
public class Actions
{
    @Element(name = "DROP", required = false)
    private String drop;


    // ...

    public String getDrop()
    {
        return drop;
    }
}

如果您不希望drop为空,则可以将其注释为 required

@Element(name = "DROP", required = true)
private String drop;

如果required = true为空,参数drop将抛出异常。如果不允许空drop,您可以使用此功能。

第二种方法是设置required = false;如果它为空,它将被反序列化为null

@Element(name = "DROP", required = false)
private String drop;

// Test if 'drop' is empty:
Actions a = ...
boolean isEmpty = ( a.getDrop() == null );

您现在可以检查丢弃是null(=空)还是 null(=设置)。如果drop可能为空并且这不是问题/需要,则可以使用此方法。

作为第三种方法,您可以实现 Converter ,您可以在其中实现序列化/反序列化。

答案 1 :(得分:0)

我已经构建了一个转换器,因此空元素不会返回null,而是返回一个空字符串。