天冷就回家0202 2013-04-25 22:22 采纳率: 0%
浏览 109

利用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 block
            System.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>

 恳请各路大神指点,小弟现在这里谢过了

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
    • ¥88 实在没有想法,需要个思路
    • ¥15 MATLAB报错输入参数太多
    • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
    • ¥15 有赏,i卡绘世画不出
    • ¥15 如何用stata画出文献中常见的安慰剂检验图
    • ¥15 c语言链表结构体数据插入
    • ¥40 使用MATLAB解答线性代数问题
    • ¥15 COCOS的问题COCOS的问题
    • ¥15 FPGA-SRIO初始化失败