Java 读入空元素
我正在尝试使用简单的XML框架解析Java中的Iptables XML配置 我一直在阅读ACTIONS元素,如下面的配置:Java 读入空元素,java,xml,simple-framework,Java,Xml,Simple Framework,我正在尝试使用简单的XML框架解析Java中的Iptables XML配置 我一直在阅读ACTIONS元素,如下面的配置: <actions> <DROP /> </actions> 如何在我的Java中检查DROP元素是否存在于XML文件中?假设操作映射到与此类似的类: @Root(name = "actions") public class Actions { @Element(name = "DROP", req
<actions>
<DROP />
</actions>
如何在我的Java中检查DROP元素是否存在于XML文件中?假设
操作
映射到与此类似的类:
@Root(name = "actions")
public class Actions
{
@Element(name = "DROP", required = false)
private String drop;
// ...
public String getDrop()
{
return drop;
}
}
如果不希望drop
为空,可以根据需要对其进行注释:
如果drop
为空,参数required=true
将引发异常。如果不允许空的拖放
,则可以使用此选项
第二种方法是设置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
可能为空并且这不是问题/需要,则可以使用此选项
作为第三种方法,您可以实现一个转换器,您可以自己实现序列化/反序列化。我已经构建了一个转换器,这样空元素就不会作为null返回,而是作为空字符串返回。如果您只是想确定“actions”有任何“DROP”子元素,使用“actions/drop”或“not(actions/drop)”XPATH表达式如何在代码中编写?简单XML框架正在解析XML文档。如何注释Java类以检查actions元素中是否存在空的DROP元素?
@Element(name = "DROP", required = false)
private String drop;
// Test if 'drop' is empty:
Actions a = ...
boolean isEmpty = ( a.getDrop() == null );