现在有这样N个arrayList(当前节点名称,当前节点内容,父节点名称,是否叶子,是否Attribute);想用dom4j递归生成一个document,
有现成的代码最好,没有的话给个伪代码也行,谢谢了

解决方案 »

  1.   

      public Document createDoc() {
        Document doc = DocumentHelper.createDocument();
        Element root = doc.addElement("root");
        Element author2 = root.addElement("author").addAttribute("name", "Toby").addAttribute("location", "Germany").addText(
            "Tobias Rademacher");
        Element author1 = root.addElement("author").addAttribute("name", "James").addAttribute("location", "UK").addText(
            "James Strachan");
        return doc;
      }这部分是核心代码,
    完整的参考请看转载的一个文章
     http://www.java2000.net/viewthread.jsp?tid=5724
      

  2.   

    public Document createDoc() {
        Document doc = DocumentHelper.createDocument();
        Element root = doc.addElement("root");
        Element author2 = root.addElement("author").addAttribute("name", "Toby").addAttribute("location", "Germany").addText(
            "Tobias Rademacher");
        Element author1 = root.addElement("author").addAttribute("name", "James").addAttribute("location", "UK").addText(
            "James Strachan");
        return doc;
      }
      

  3.   

    请参考IBM的这篇文章
    http://www-128.ibm.com/developerworks/cn/xml/x-dom4j.htmlimport org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.XMLWriter;
    import java.io.*;
    public class XmlDom4J{
    public void generateDocument(){
    Document document = DocumentHelper.createDocument();
         Element catalogElement = document.addElement("catalog");
         catalogElement.addComment("An XML Catalog");
         catalogElement.addProcessingInstruction("target","text");
         Element journalElement =  catalogElement.addElement("journal");
         journalElement.addAttribute("title", "XML Zone");
         journalElement.addAttribute("publisher", "IBM developerWorks");
         Element articleElement=journalElement.addElement("article");
         articleElement.addAttribute("level", "Intermediate");
         articleElement.addAttribute("date", "December-2001");
         Element  titleElement=articleElement.addElement("title");
         titleElement.setText("Java configuration with XML Schema");
         Element authorElement=articleElement.addElement("author");
         Element  firstNameElement=authorElement.addElement("firstname");
         firstNameElement.setText("Marcello");
         Element lastNameElement=authorElement.addElement("lastname");
         lastNameElement.setText("Vitaletti");
         document.addDocType("catalog",
                               null,"file://c:/Dtds/catalog.dtd");
        try{
        XMLWriter output = new XMLWriter(
                new FileWriter( new File("c:/catalog/catalog.xml") ));
            output.write( document );
            output.close();
            }
         catch(IOException e){System.out.println(e.getMessage());}
    }
    public static void main(String[] argv){
    XmlDom4J dom4j=new XmlDom4J();
    dom4j.generateDocument();
    }}
      

  4.   

    lz 凌晨 2 点发帖。。 网上是例子基本都差不多,给lz找了几篇文章,不过程序基本都是差不多,但是解析的都很清楚,希望lz有时间可以认真读一读,写的都很不错。http://www.ibm.com/developerworks/cn/xml/x-dom4j.htmlhttp://blog.csdn.net/cuiweibing/archive/2007/08/14/1743235.aspxhttp://blog.iyi.cn/tech/2005/10/dom4jxml.html
      

  5.   

    递归也可以采用Iterator作为枚举手段,但文档中提供了另外的做法
         public void treeWalk() {
           treeWalk(getRootElement());
        }
        public void treeWalk(Element element) {
           for (int i = 0, size = element.nodeCount(); i < size; i++)     {
               Node node = element.node(i);
               if (node instanceof Element) {
                  treeWalk((Element) node);
               } else { // do something....
               }
           }
    }
      
      

  6.   

    下面这个网页里面有很详细的:
    http://www.blogjava.net/jiangmin/articles/122016.html