<ROOT>
- <BASE_DATA>
  <ORG_NUM>123</ORG_NUM> 
  <COM_CODE>123</COM_CODE> 
  <OP_ID>123</OP_ID> 
  <OP_USER>123</OP_USER> 
  <DEL_RIGHT>123</DEL_RIGHT> 
  </BASE_DATA>
- <META_DATAS>
- <META_DATA>
  123 
  <APP_CODE>123</APP_CODE> 
  <APP_NAME>123</APP_NAME> 
- <TREE_NODE>
  <TREE id="123" name="we" /> 
  <PAGE fileName="qwe" re="qwe" create_user="11111" create_time="11" /> 
  </TREE_NODE>
  </META_DATA>
  </META_DATAS>
  </ROOT>
这个是我生成的XML,现在是  一个<META_DATAS>里面可能会有多个<META_DATA>,每个<TREE_NODE>里面可能会有多个<TREE id="***" name="**" /> 
目前我是一个个节点写死写出来的。
Document document =DocumentHelper.createDocument();
  //添加根节点
  Element root=document.addElement("ROOT");
  //添加root子节点basedata,
  Element basedata=root.addElement("BASE_DATA");怎么样才能动态获取呢?

解决方案 »

  1.   

    要写XML, //得到document对象
      Document document =DocumentHelper.createDocument();
      //添加根节点
      Element root=document.addElement("ROOT");
      //添加root子节点basedata,
      Element basedata=root.addElement("BASE_DATA");
     //添加basedata子节点
      Element orgnum=basedata.addElement("ORG_NUM").addText("123");
      Element comcode=basedata.addElement("COM_CODE").addText("123");
      Element opid=basedata.addElement("OP_ID").addText("123");
      Element opuser=basedata.addElement("OP_USER").addText("123");
      Element delright=basedata.addElement("DEL_RIGHT").addText("123");
      
    //添加root子节点metadatas,
      Element metadatas=root.addElement("META_DATAS");
    //添加metadatas子节点metadata,
      Element metadata=metadatas.addElement("META_DATA").addText("123");
      Element appcode=metadata.addElement("APP_CODE").addText("123");
      Element appname=metadata.addElement("APP_NAME").addText("123");
      Element treenode=metadata.addElement("TREE_NODE");
    //添加treenode子节点tree,
      Element tree=treenode.addElement("TREE").addAttribute("id", "123").addAttribute("name", "we");
      Element page=treenode.addElement("PAGE").addAttribute("fileName", "qwe").addAttribute("re", "qwe").
      addAttribute("create_user", "11111").addAttribute("create_time", "11");
      
      //格式化输出文件
      OutputFormat format=OutputFormat.createPrettyPrint();
      //声明写出文件
      XMLWriter writer=new XMLWriter(new FileWriter("e:\\1231.xml"),format);
      //写出文件
      writer.write(document);
      //关闭文件流
      writer.close();
      

  2.   

    这个值不是我写死控制的写死一个for循环不好吧?
      

  3.   

    你的这些值怎么来的,可以封装个生成META_DATA节点的方法。再来个生成TREE_NODE节点的方法
      

  4.   

    jaxb这是我喜欢的方式
      

  5.   

    页面上有个上传文件的功能,TREE是对文件的描述,  上传文件数量不可能是我控制死的。所以想要弄个动态的生成XML。   大神们稍微给点代码方面的提示吧。这还有很多别的时候要忙。。
      

  6.   

    你根据上传文件的数量写循环不就完了吗
    int k = 上传文件数量;
      Document document =DocumentHelper.createDocument();
      //添加根节点
      Element root=document.addElement("ROOT");
    for(int i=0;i<k;i++)//别说你不能得到用户上传了几个文件!
    {
      //添加root子节点basedata,
      Element basedata=root.addElement("BASE_DATA");
     //添加basedata子节点
      Element orgnum=basedata.addElement("ORG_NUM").addText("123");
      Element comcode=basedata.addElement("COM_CODE").addText("123");
      Element opid=basedata.addElement("OP_ID").addText("123");
      Element opuser=basedata.addElement("OP_USER").addText("123");
      Element delright=basedata.addElement("DEL_RIGHT").addText("123");
    }