Нужна помощь в обработке документов с использованием dom4j - PullRequest
0 голосов
/ 14 января 2009
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();
        }
    }
}

Я создал два объекта документа, теперь я хочу переместить один элемент и его дочерние элементы в другой. Как я могу это сделать. Может кто-нибудь сказать мне, спасибо. ^ _ ^

Ответы [ 2 ]

2 голосов
/ 14 января 2009

Используйте стандартный метод DOM Document.importNode для переноса контента из одного документа в другой. 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);

(при условии, что эта строка:

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

предполагается читать:)

Element companies = document2.addElement("companies");
1 голос
/ 09 сентября 2009

Element.createCopy () , вероятно, то, что вы должны использовать:

...