下面是我的代码::
public static String objectToXML(Object object){
String xmlHeader="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
XStream stream = new XStream();
stream.alias(
object.getClass().getName().substring(
object.getClass().getName().lastIndexOf(".") + 1)
.toLowerCase(), object.getClass());
return xmlHeader+"\n"+stream.toXML(object);
}
如果传入一个对象,是完全没有问题的。
public static void main(String[] args) {
Student student=new Student();
student.setId(1);
student.setName("样");
student.setAge(2);
student.setBirthday(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
System.out.println(DataConversion.objectToXML(students));
}
结果:<?xml version="1.0" encoding="UTF-8"?>
<student>
<id>1</id>
<name>样</name>
<age>2</age>
<birthday>2010-03-18</birthday>
</student>但是传入一个list就有问题了:
public static void main(String[] args) {
List students=new ArrayList();
Student student=null;
for (int i = 0; i < 5; i++) {
student=new Student();
student.setId(1+i);
student.setName("样"+i);
student.setAge(2+i);
student.setBirthday(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
students.add(student);
}
System.out.println(DataConversion.objectToXML(students));
}
结果:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<test.com.bean.Student>
<id>1</id>
<name>样0</name>
<age>2</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>2</id>
<name>样1</name>
<age>3</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>3</id>
<name>样2</name>
<age>4</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>4</id>
<name>样3</name>
<age>5</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>5</id>
<name>样4</name>
<age>6</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
</list>问题::
传入list的话,他的子节点为list
而且stream.alias(...)设置的他的节点名字根本没有起到效果
各位大哥,大姐,朋友些
帮忙看下嘛
该怎么改阿......
public static String objectToXML(Object object){
String xmlHeader="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
XStream stream = new XStream();
stream.alias(
object.getClass().getName().substring(
object.getClass().getName().lastIndexOf(".") + 1)
.toLowerCase(), object.getClass());
return xmlHeader+"\n"+stream.toXML(object);
}
如果传入一个对象,是完全没有问题的。
public static void main(String[] args) {
Student student=new Student();
student.setId(1);
student.setName("样");
student.setAge(2);
student.setBirthday(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
System.out.println(DataConversion.objectToXML(students));
}
结果:<?xml version="1.0" encoding="UTF-8"?>
<student>
<id>1</id>
<name>样</name>
<age>2</age>
<birthday>2010-03-18</birthday>
</student>但是传入一个list就有问题了:
public static void main(String[] args) {
List students=new ArrayList();
Student student=null;
for (int i = 0; i < 5; i++) {
student=new Student();
student.setId(1+i);
student.setName("样"+i);
student.setAge(2+i);
student.setBirthday(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
students.add(student);
}
System.out.println(DataConversion.objectToXML(students));
}
结果:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<test.com.bean.Student>
<id>1</id>
<name>样0</name>
<age>2</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>2</id>
<name>样1</name>
<age>3</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>3</id>
<name>样2</name>
<age>4</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>4</id>
<name>样3</name>
<age>5</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
<test.com.bean.Student>
<id>5</id>
<name>样4</name>
<age>6</age>
<birthday>2010-03-18</birthday>
</test.com.bean.Student>
</list>问题::
传入list的话,他的子节点为list
而且stream.alias(...)设置的他的节点名字根本没有起到效果
各位大哥,大姐,朋友些
帮忙看下嘛
该怎么改阿......
我在线等阿
============