由于项目需要,需要写一棵树来展示业务种类信息,网上找了诸多的代码,基本没几个可以直接拿来用的,自己琢磨了几天,把这事搞定了,发一篇文章上来,给需要朋友,以后有需要,直接来这儿看看代码,复制到本地直接使用即可,其中有些属性之类的值方面的代码进行了简化,但不影响具体的使用,有需要的朋友直接扩展节点的属性即可。
开发环境:eclipse,spring+ibatis
业务需求:生成一颗组织结构树
public class TransListToXML { /** * 生成document * * @return document * */ public static Document generateXML() { // 获取根部门 Organization rootOrg = getRootOrg(); Document doc = DocumentHelper.createDocument(); Element root = doc.addElement("root"); Element orgRoot = root.addElement(rootOrg.getName()); appendXML(orgRoot, rootOrg.getId()); return doc; } /** * 获取根节点下直属部门拼接XML 使用递归,一级一级往下查 * */ public static void appendXML(Element e, String orgId) { List<Organization> orgList = getOrgByParentId(orgId); for (Organization org : orgList) { Element e1 = e.addElement(org.getName()); appendXML(e1, org.getId()); } } /** * 获取父节点下所有的子节点 * */ public static List<Organization> getOrgByParentId(String orgId) { String configLocation = "applicationContext.xml"; ApplicationContext context = new ClassPathXmlApplicationContext( configLocation); OrganizationService orgSer = (OrganizationService) context .getBean("organizationService"); return orgSer.getOrgByParentId(orgId); } /** * 获取部门根节点 * * @return Organization * */ public static Organization getRootOrg() { String configLocation = "applicationContext.xml"; ApplicationContext context = new ClassPathXmlApplicationContext( configLocation); OrganizationService orgSer = (OrganizationService) context .getBean("organizationService"); Organization rootOrg = orgSer.getRootOrg(); return rootOrg; } /** * 写入XMl文件 * * @param document * 所要写入的文件内容 * @param outFile * 文件存放的地址 * */ public static void writeDocument(Document docment, String outFile) { try { FileOutputStream fileWriter = new FileOutputStream(outFile);// 读取文件 OutputFormat xmlFormat = OutputFormat.createPrettyPrint();// 设置文件格式 xmlFormat.setEncoding("utf-8"); XMLWriter xmlWriter = new XMLWriter(fileWriter, xmlFormat);// 创建写文件方法 xmlWriter.write(docment);// 写入文件 xmlWriter.close(); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("文件没有找到"); e.printStackTrace(); } } public static void main(String[] args) { Document doc = TransListToXML.generateXML(); String outFile = "d://result.xml"; writeDocument(doc, outFile); } }
代码不做解释了,注释写的很明白。
如有不懂,欢迎进行相互交流
相关推荐
JS 带右键菜单的目录树 dhtmlxtree+proto.menu 分权限 JS 带右键菜单的目录树 dhtmlxtree+proto.menu 分权限 图片预览 ...
JS 带右键菜单的目录树 dhtmlxtree+proto.menu JS 带右键菜单的目录树 dhtmlxtree+proto.menu JS 带右键菜单的目录树 dhtmlxtree+proto.menu ...
圣诞节到了,我为大家送上java版的纯json数据构建树的demo,嘻嘻有了这个demo想建多少棵圣诞树也不是问题!送给各位位辛勤劳动的软件工程师们,祝大家圣诞快乐,新年快乐!身体健康,事业有成哦!
最近一直在做后台的一些管理系统,用到dhtmlxTree的内容比较多,以前没有接触过,因此整理了一个简单的Demo(使用的是SpringMVC框架)。
NULL 博文链接:https://flashdream8.iteye.com/blog/906486
里面包含创建一棵树用到的js和必要的jar包
dhtmlXtree树 右dhtmlXtree键菜单
dhtmlxtree和json的应用。自己写的练习项目,免费下载。
DHtmlXTree应用指南,DHtmlXTree,DHtmlXTree教程,DHtmlXTree详细文档,DHtmlXTree使用例仔
通过开发一个小工具讲述DHtmlXTree的应该 主要内容: DHtmlXTree生成设置 xml文档生成 DHtmlXTree加载xml文档
专业版dhtmlxtree下载 专业版dhtmlxtree下载
dhtmlxtree例子
dhtmlxTree文档,代码都有,控件学习
完善dhtmlxTree目录树,实现以下内容: 1、右键菜单(右键菜单中包括:新建、修改、共享、删除、刷新等功能) 2、拖拽排序 教程:http://blog.csdn.net/zm2714/article/details/7936565 本压缩包内实例代码是...
包含dhtmlxTree(树型控件),dhtmlxTabbar(选项卡),dhtmlxGrid(数据表格),dhtmlxCombo(下拉选项),dhtmlxTreeGrid(树型表格),dhtmlxVault(文件上传控件),dhtmlxMenu(菜单),dhtmlxToolbar(工具条),dhtmlxCalendar(日历...
dhtmlxtree中文开发指导,简单介绍dhtmlxtree的使用。初学者适合。
从版本2.0,dhtmlxLayout提供了 DHTMLX组件与其他高层次的集成 ,如 dhtmlxGrid ,dhtmlxTree , dhtmlxWindows , dhtmlxMenu 等窗格集成组件可以在全球的应用和分别为每个布局。 有了一个新的皮肤2.5版本,介绍,...