📄 objecttoxml.java
字号:
package test.xml;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ObjectToXml {
public static void main(String[] args) {
Class kk = MyObject.class;
MyObject my = new MyObject();
MyObject my1 = new MyObject();
MyObject1 sub = new MyObject1();
sub.setISBN("0-2112-120");
my.setAge("10");
my.setName("Tom");
my.setSub(sub);
my.setSecond(sub);
my1.setAge("10");
my1.setName("Tom");
my1.setSub(sub);
my1.setSecond(sub);
MyObject[] test ={my,my1};
Field[] fields = kk.getFields();
for (int i = 0; i < fields.length; i++) {
System.out.println(fields[i].getName());
}
Method[] methods = kk.getMethods();
for (int i = 0; i < methods.length; i++) {
if(methods[i].getName().startsWith("get")){
System.out.println(methods[i].getName());
try {
System.out.println(methods[i].invoke(my));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
System.out.println("-------------- XML Begin ----------------");
System.out.println("<?xml version=\"1.0\" ?>");
System.out.println("<"+kk.getSimpleName()+">");
for (int i = 0; i < methods.length; i++) {
if(methods[i].getName().startsWith("get")){
String temp = methods[i].getName();
temp = temp.substring(3, temp.length());
temp = temp.substring(0, 1).toLowerCase()+temp.substring(1, temp.length());
System.out.print("\t<"+temp+">");
// System.out.println(methods[i].getName());
try {
Object obj = methods[i].invoke(my);
if(obj instanceof String){
System.out.print(obj);
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println("</"+temp+">");
}
}
System.out.println("</"+kk.getSimpleName()+">");
System.out.println("----------- Static Method ----------");
printObjectToXml(my,"\t");
System.out.println("----------- Static Method 2 ----------");
printObjectToXml(test,"\t");
}
public static void printObjectToXml(Object o,String prefix){
if(o instanceof Object[]){
Object[] objs = (Object[])o;
for (int i = 0; i < objs.length; i++) {
printObjectToXml(objs[i],prefix);
}
return ;
}
Class kk = o.getClass();
Method[] methods = kk.getMethods();
if(prefix==null||"".equals(prefix)){
System.out.println("<?xml version=\"1.0\" ?>");
}
System.out.println(prefix+"<"+kk.getSimpleName()+">");
for (int i = 0; i < methods.length; i++) {
if(methods[i].getName().startsWith("get")){
String temp = methods[i].getName();
temp = temp.substring(3, temp.length());
temp = temp.substring(0, 1).toLowerCase()+temp.substring(1, temp.length());
System.out.print(prefix+"\t<"+temp+">");
// System.out.println(methods[i].getName());
try {
Object obj = methods[i].invoke(o);
if(obj instanceof String){
System.out.print(obj);
}else if(obj instanceof Class){
System.out.print(obj.toString().substring(6, obj.toString().length()));
}else if(!(obj instanceof Class)){
System.out.println("");
printObjectToXml(obj,prefix+"\t\t");
System.out.print(prefix+"\t");
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println("</"+temp+">");
}
}
System.out.println(prefix+"</"+kk.getSimpleName()+">");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -