我正在尝试使用 Simple XML 框架在 Java 中解析 Iptables XML 配置。
我坚持阅读如下配置中的 ACTIONS 元素:
<actions>
<DROP />
</actions>
如何在我的 Java 中检查 DROP 元素是否存在于 XML 文件中?
我正在尝试使用 Simple XML 框架在 Java 中解析 Iptables XML 配置。
我坚持阅读如下配置中的 ACTIONS 元素:
<actions>
<DROP />
</actions>
如何在我的 Java 中检查 DROP 元素是否存在于 XML 文件中?
假设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
自己实现序列化/反序列化。
我已经构建了一个转换器,以便空元素不会返回为 null 而是作为空字符串返回。