JDOM - Documents "addieren"

Guntpat1981

Mitglied
Hallo zusammen,

ich habe zwei JDOM Document und möchte aus den beiden eins machen - gibt es eine Operation, die etwas längeren Code verhindert?

Würde mich über eine Antwort freuen.

Viele Grüße,
Patrick
 
Folgendermaßen -->

Code:
1. Document: 

<system>
   <classes>
      ........
   </classes>
</system>

2. Document:

<root>
   <target>


   </target>
</root>


GesamtDocument: 
<system>

   <classes>
      ....
   </classes>

   <root>
      <target>

      </target>
   </root>

</system>
 
Hallo,

dazu gibts mehrere Möglichkeiten... beispielsweise kannst du die Dokumente mit einem entsprechendem XSLT Stylesheet transformieren, mit StAX zusammen bringen:
http://www.ibm.com/developerworks/xml/library/x-tipstx5/index.html , per String Ersetzung oder auch einfach so zusammen bringen.

schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.io.StringReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;

/**
 * @author Tom
 * 
 */
public class MergeXmlDocumentsExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance()
                .newDocumentBuilder();
        String xml1 = "<system><classes></classes></system>";
        String xml2 = "<root><target></target></root>";
        
        Document mainDocument = documentBuilder.parse(new InputSource(
                new StringReader(xml1)));
        Document document = documentBuilder.parse(new InputSource(
                new StringReader(xml2)));

        mainDocument.getFirstChild().appendChild(
                mainDocument.importNode(document.getFirstChild(), true));

        TransformerFactory.newInstance().newTransformer().transform(
                new DOMSource(mainDocument), new StreamResult(System.out));

    }

}

Ausgabe:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><system><classes/><root><target/></root></system>

Gruß Tom
 
Zurück