Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读入空元素_Java_Xml_Simple Framework - Fatal编程技术网

Java 读入空元素

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

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

我一直在阅读ACTIONS元素,如下面的配置:

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