我想以下列格式创建一个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>
如果我不想要其中包含特定<PARAM>
的{{1}}字段,该怎么办?
答案 0 :(得分:1)
虽然我真的不认为Xstream真的适合这项任务,但似乎有可能。
您可以实现类似于one of those的转换器。如果你看一下Converter界面,你会发现你可以通过不向HierarchicalStreamWriter
写任何内容来轻松跳过元素。
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(new ParamConverter());
。
有关详细信息,请参阅转换器上的this tutorial。