当前位置 : 主页 > 编程语言 > c++ >

通过list集合写xml文件

来源:互联网 收集:自由互联 发布时间:2021-07-03
需要传一个类的反射 //有瑕疵 不够完全面向对象 需要自己创建根节点 和 每一个次级节点 public static void writeXmlByDoc(Class c) throws Exception{List list=new ArrayList (); list.add(new Users(1001, "小姑娘
需要传一个类的反射
//有瑕疵 不够完全面向对象 需要自己创建根节点 和 每一个次级节点 
public static void writeXmlByDoc(Class c) throws Exception{
		List
 
   list=new ArrayList
  
   (); list.add(new Users(1001, "小姑娘", "123", 1, new Roles(1, "CFO"))); list.add(new Users(1002, "小鹏宇", "1234", 2, new Roles(2, "BOSS"))); list.add(new Users(1003, "小宝贝", "12345", 3, new Roles(3, "CEO"))); Element root = DocumentHelper.createElement(c.getSimpleName()+"Manager"); Document doc = DocumentHelper.createDocument(root); for (Users users : list) { Element classElement = DocumentHelper.createElement(c.getSimpleName()); root.add(classElement); creatElements(c, classElement, users); } FileOutputStream fos = new FileOutputStream("studentTemp.xml"); OutputFormat format = new OutputFormat(" ",true); //XMLWriter writer = new XMLWriter(); XMLWriter writer = new XMLWriter(fos,format); writer.write(doc); System.out.println("over"); }
  
 
创建节点:
public static void creatElements(Class c,Element fatherElement,Object object) throws Exception{
		String nameTemp;
		for (Method me : c.getMethods()) {
			for (Field fl : c.getDeclaredFields()) {
				if(me.getName().equalsIgnoreCase("get"+fl.getName())){
					Element nameElement = DocumentHelper.createElement(fl.getName());
					nameElement.setText(me.invoke(object, null)+"");
					fatherElement.add(nameElement);
					
					if(!isBasicType(fl.getType())){
						creatElements(fl.getType(), nameElement, me.invoke(object, null));
					}
				}
			}
		}
	}
判断是否是基本类型:
public static boolean isBasicType(Class clazz){
		if(clazz == Character.class || clazz == char.class || clazz == String.class || 
			clazz == Integer.class || clazz == int.class ||
			clazz == Float.class ||	clazz==float.class ||
			clazz == Double.class || clazz == double.class ||
			clazz == Byte.class || clazz == byte.class ||
			clazz == Boolean.class || clazz == boolean.class ||
			clazz == Long.class || clazz == long.class ||
			clazz == Short.class || clazz == short.class){
			return true;
		}
		return false;
	}
上一篇:jquery注册登录测试
下一篇:Mybatis概述
网友评论