java xml 空节点成对_xStream javaBean转为xml时,怎么保留空节点

本文介绍如何在使用xStream将Java Bean转换为XML时,如何处理并保留空节点。通过创建一个自定义的`StudentConverter`类,实现了在`marshal`方法中检查属性是否为空,如果为空则写入空字符串,从而在生成的XML中保留空节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展开全部

使用一个自定32313133353236313431303231363533e4b893e5b19e31333337613234义的Converter:public class Student{

String name;

int age;

String teacher;

public void setName(String name){

this.name = name;

}

public String getName(){

return name;

}

.......

......//Like that mention other getter and setter method

}

public class StudentConverter implements Converter{

public boolean canConvert(Class clazz) {

return clazz.equals(Test.class);

}

public void marshal(Object value, HierarchicalStreamWriter writer,

MarshallingContext context) {

Student student = (Student ) value;

writer.startNode("name");

writer.setValue(test.getName());

writer.endNode();

writer.startNode("age");

writer.setValue(test.getAge());

writer.endNode();

writer.startNode("teacher");

String teacher = test.getTeacher();

if(teacher == null)

writer.setValue("");

else

writer.setValue(teacher);

writer.endNode();

}

public Object unmarshal(HierarchicalStreamReader reader,

UnmarshallingContext context) {

Student student = new Student();

test.setName(reader.getNodeName());

test.setAge(reader.getNodeName());

test.setTeacher(reader.getNodeName());

return student;

}

}

public class App1{

public static void main(String args[]) {

XStream stream = new XStream(new StaxDriver());

Student st = new Student();

st.setName("ABC");

t.setAge(21);

stream.registerConverter(new StudentConverter());

stream.alias("student", Student.class);

System.out.println(stream.toXML(st));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值