Hy,
ich möchte Ein XML-Dokument (test.xml) lesen und an einer bestimmten Stelle (include-Node) eine Node durch ein anderes XML-Dokument (include1.xml) ersetzen. Also quasi ein "XML-in-XML-Include".
die Beispiel Dokumente sehn wie folgt aus:
test.xml:
include.xml:
Ich hatte mir das in etwa so vorgestellt:
aber dann wird folgende Exception geworfen:
Offensichtlich können Nodes aus verschiedenen Dokumenten nicht zusammen in ein Dokument gefügt werden. Warum geht das nicht? Und was gäbe es für eine Alternative?
mfg Supa
ich möchte Ein XML-Dokument (test.xml) lesen und an einer bestimmten Stelle (include-Node) eine Node durch ein anderes XML-Dokument (include1.xml) ersetzen. Also quasi ein "XML-in-XML-Include".
die Beispiel Dokumente sehn wie folgt aus:
test.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<buch>
<chapter>
<page no="1">
Hier steht Text...
</page>
</chapter>
<include value="include1.xml" /><!-- "value" bewirkt hier natürlich noch nichts-->
</buch>
include.xml:
Code:
<chapter>
<page no="2">
Hier steht noch mehr Text...
</page>
</chapter>
Ich hatte mir das in etwa so vorgestellt:
Code:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
public class Test {
public static void main(String[] args) {
try {
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc1 = parser.parse(new File("test.xml"));
Document doc2 = parser.parse(new File("include1.xml"));
doc1.replaceChild(doc2, doc1.getElementById("include"));
} catch (Exception e) {e.printStackTrace();}
}
}
aber dann wird folgende Exception geworfen:
Code:
org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
Offensichtlich können Nodes aus verschiedenen Dokumenten nicht zusammen in ein Dokument gefügt werden. Warum geht das nicht? Und was gäbe es für eine Alternative?
mfg Supa