2009-01-14 4 views
0
import java.util.Iterator; 

import org.dom4j.Document; 
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 
import org.dom4j.io.XMLWriter; 


public class Main { 
    public static void main(String[] args){ 
     Company cp17 = new Company(); 
     Person ps1 = new Person("Barry","15900000000"); 
     Person ps2 = new Person("Andy","15800000000"); 
     cp17.employee.add(ps1); 
     cp17.employee.add(ps2); 

     Document document = DocumentHelper.createDocument(); 
     Element companyElement = document.addElement("company"); 
     for(Iterator<Person> personIter = cp17.employee.iterator();personIter.hasNext();){ 
      Person nextEmployee = personIter.next(); 
      Element employee = companyElement.addElement("employee"); 
      employee.addAttribute("name",nextEmployee.name); 
      employee.addAttribute("phoneNumber",nextEmployee.phoneNumber); 
     } 

     Document document2 = DocumentHelper.createDocument(); 
     Element compnies = document.addElement("companies"); 
     //move cp17 to document2 as a child of companies. 
     //ERROR companies.add(cp17); 
     XMLWriter xmlWriter = new XMLWriter(); 
     try{ 
     xmlWriter.write(document2); 
     xmlWriter.close(); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

Je CREAT deux documents objet, maintenant je veux déplacer un élément et il est l'enfant Éléments à another.How puis-je faire que tout le monde .Peut me dire, merci.^_^Besoin d'aide pour le traitement des documents en utilisant dom4j

Répondre

2

Utilisez la méthode DOM standard Document.importNode pour amener le contenu d'un document dans un autre. http://www.dom4j.org/dom4j-1.6.1/apidocs/org/dom4j/dom/DOMDocument.html#importNode%28org.w3c.dom.Node,%20boolean%29

Element companyElement2= document2.importNode(companyElement, true); 
companies.appendChild(companyElement2); 

(En supposant que cette ligne:

Element compnies = document.addElement("companies"); 

est censé lire :)

Element companies = document2.addElement("companies"); 
+0

Est-ce à appliquer DOM4J ? – jamesh

+0

Oui, dom4j supporte les méthodes DOM standards ainsi que ses propres extensions/alternatives à la norme. – bobince

+0

Pour quiconque lisant importNode n'est pas implémenté dans dom4j 1.6.1 (ou plus tôt je suppose). – Konstantin