我正在尝试使用Simple XML框架解析Java中的Iptables XML配置。
我很难读取ACTIONS中的元素,比如在这段配置中:
<actions>
<DROP />
</actions>
如何在我的Java中检查XML文件中是否存在DROP元素?
答案 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,而是返回一个空字符串。