0

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

我坚持阅读如下配置中的 ACTIONS 元素:

   <actions>
       <DROP  />
   </actions>

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

4

2 回答 2

1

假设actions被映射到一个类似于这个的类:

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


    // ...

    public String getDrop()
    {
        return drop;
    }
}

如果您不想drop为空,可以根据需要对其进行注释:

@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 );

您现在可以检查 drop 是否null(= 空)或 null(= 设置)。如果drop可能是空的并且这不是问题/必需,您可以使用它。

作为第三种方式,您可以Converter自己实现序列化/反序列化。

于 2013-05-19T18:21:55.467 回答
0

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

于 2013-05-22T12:17:31.477 回答