利用dom4j生成dhmlxtree的xml文件格式异常

问题描述

由于项目需要,需要开发一颗树来展示各元素之间的层级关系,选用了DhtmlTree树控件来实现前台树代码如下:public class TransListToXML {/** * 生成document * @return document * */public static Document generateXML(){List<Organization> orgList = TransListToXML.getOrgList();Document doc = DocumentHelper.createDocument();Element root = doc.addElement("root");for(Organization org:orgList){Element orgPre = root.addElement(org.getName());for(Organization orgs:orgList){if((org.getId()).equals(orgs.getParentid())){orgPre.addElement(orgs.getName());}}}//Element category = root.addElement("category");//Element id = category.addElement("id");//id.addAttribute("name","id");//id.addText("malongchao");return doc;}/** * 写入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 blockSystem.out.println("文件没有找到");e.printStackTrace();}}/** * 获取组织机构列表信息 * @return orgList 组织机构信息列表 * */public static List<Organization> getOrgList(){String configLocation = "applicationContext.xml";ApplicationContext context = new ClassPathXmlApplicationContext(configLocation);OrganizationService orgSer = (OrganizationService)context.getBean("organizationService");List<Organization> orgList = orgSer.getAllOrgization();return orgList;}public static void main(String[] args){Document doc = TransListToXML.generateXML();String outFile = "d://result.xml";writeDocument(doc, outFile);}}  需要的输出结果为 <root> <北京> <北京/> <海淀区> <奥运村/> <丰台区/> <七里庄/> <北大地/> <卢沟桥/> </海淀区> <中关村/> <上地/> </北京></root> 但是目前实际的输出结果为:<?xml version="1.0" encoding="utf-8"?><root> <北京> <北京/> <海淀区/> <中关村/> <上地/> </北京> <海淀区> <奥运村/> <丰台区/> <七里庄/> <北大地/> <卢沟桥/> </海淀区> <中关村/> <上地/> <奥运村/> <丰台区/> <七里庄/> <北大地/> <卢沟桥/></root> 恳请各路大神指点,小弟现在这里谢过了

解决方案

部门查询方法有问题,先获取北京,再获取北京下其他直属部门拼XML,用一个递归,一级一级往下查,拼接
解决方案二:
for(Organization org:orgList){ Element orgPre = root.addElement(org.getName()); for(Organization orgs:orgList){ if((org.getId()).equals(orgs.getParentid())){ orgPre.addElement(orgs.getName()); } } } ----------------------->如果只有两级树的话for(Organization org:orgList){ //找一级节点写入root 否则continue; Element orgPre = root.addElement(org.getName()); //找二级节点 for(Organization orgs:orgList){ if((org.getId()).equals(orgs.getParentid())){ orgPre.addElement(orgs.getName()); } } } 如果多级的话 就需哟递归完成//1、写一级节点//2、循环一级节点 递归找其他级别节点

时间: 2024-07-30 14:23:44

利用dom4j生成dhmlxtree的xml文件格式异常的相关文章

dom4j生成和解析xml文件

要生成和解析如下格式的xml文件:  代码如下 复制代码 <?xml version="1.0" encoding="UTF-8"?> <Message xmlns:xs="http://www.w3.org/2001/XMLSchema">   <User>     <id>1</id>     <name>李寻欢</name>     <age>3

java中利用Dom4j解析和生成XML文档_java

一.前言 dom4j是一套非常优秀的Java开源api,主要用于读写xml文档,具有性能优异.功能强大.和非常方便使用的特点.   另外xml经常用于数据交换的载体,像调用webservice传递的参数,以及数据做同步操作等等,   所以使用dom4j解析xml是非常有必要的. 二.准备条件 dom4j.jar 下载地址:http://sourceforge.net/projects/dom4j/ 三.使用Dom4j实战 1.解析xml文档 实现思路: <1>根据读取的xml路径,传递给SAX

使用DOM4J生成XML文件的换行以及特殊字符问题

问题描述 使用DOM4J生成XML文件,节点内容如何换行,'n'不行 在输出的节点内容中,有"<" 字符,我希望保留,但是却转换成了转移字符 < ,如何能阻止这种转换? 解决方案 使用n是可以换行的,要输出<等字符用addCDATA方法,代码如下public static void main(String[] args) throws Exception { Document doc = DocumentFactory.getInstance().createDocu

使用PHP生成和获取XML格式数据

在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据. 生成XML格式数据 我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息.   CREATE TABLE `student` (    `id` int(11) NOT NULL auto_increm

java中四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)_java

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.net/projects/dom4j/  一.介绍及优缺点分析

PHP生成和获取XML格式数据的方法_php技巧

本文实例讲述了PHP生成和获取XML格式数据的方法.分享给大家供大家参考,具体如下: 在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,这里将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据. 生成XML格式数据 我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `studen

ASP.NET中利用SQLXML WEB服务访问XML数据

asp.net|sql|web|web服务|xml|访问|数据      引言 使用SQLXML 的Web 服务从你的ASP.net应用程序中直接访问XML 数据       SQLXML 是扩展SQL 服务器现有的对检索和储存XML 数据的支持的一套附加的工具. 有了SQLXML 3.0,你现在就能使用SQL服务器展示Web 服务了.在SQLXML的Web 服务可以让用户执行存储过程,用户定义的功能,并且它们支持模板.       在这篇文章中,你将看出怎样展示一个作为Web 服务并构建一个简

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

原文链接 作者:Alexia(minmin) 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.net/proj

Java利用JDom解析和传递XML格式数据

java利用JDom来解析处理XML数据格式: 需要的包jdom-1.1.2.jar 1.将数据转换成XML格式的数据进行传递 Element rootList, firstList, secondItem, thirdItem; //根元素标签名 rootList = new Element("root"); //根元素标签内的属性名与值 rootList.setAttribute("project", pname); //生成Doc文档 Document Doc