Java Xstream如何在封送处理时避免使用具有特定值的字段

Java Xstream如何在封送处理时避免使用具有特定值的字段,java,xml,xstream,Java,Xml,Xstream,我想创建以下格式的xml <parm-list> <param> <NAME>somename</NAME> <VALUE>somevalue</VALUE> </param> <param> <NAME>somename</NAME> <VALUE>somevalue</VALUE> </param> <param> <N

我想创建以下格式的xml

<parm-list>
<param>
<NAME>somename</NAME>
<VALUE>somevalue</VALUE>
</param>
<param>
<NAME>somename</NAME>
<VALUE>somevalue</VALUE>
</param>
<param>
<NAME>somename</NAME>
<VALUE>somevalue</VALUE>
</param>
<param>
<NAME>somename</NAME>
<VALUE>somevalue</VALUE>
</param>
</param-list>

名字
一些价值
名字
一些价值
名字
一些价值
名字
一些价值

如果我不想在
字段中包含特定的
,我该怎么办?

虽然我真的认为Xstream不适合这个任务,但它似乎是可行的

您可以实现自己的转换器,类似于。若您查看一下接口,就会发现您可以通过不向
HierarchycalStreamWriter
写入任何内容轻松跳过元素

public class ParamConverter implements Converter{

    boolean canConvert(Class type){
        return Param.class.equals(type);
    }

    public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context){
        Param param = (Param)source;
        if (NAME_TO_SKIP.equals(param.getName()){
            return;
        }
        // delegate to ReflectionConverter or something else appropriate.
    }   
}
要注册转换器,只需调用
xStram.registerConverter(newparamconverter())

有关更多信息,请阅读转换器