Tengo dos documentos XML que he creado y quiero combinar estos dos dentro de un nuevo sobre. Así que tengoDocumentos XML de Java que se anexan a los documentos existentes
<alert-set>
<warning>National Weather Service...</warning>
<start-date>5/19/2009</start-date>
<end-date>5/19/2009</end-date>
</alert-set>
y
<weather-set>
<chance-of-rain type="percent">31</chance-of-rain>
<conditions>Partly Cloudy</conditions>
<temperature type="Fahrenheit">78</temperature>
</weather-set>
Lo que me gustaría hacer es combinar los dos dentro de un nodo raíz: < conjunto de datos> documentos combinados </base de datos>
tengo intentado crear un documento temporal y reemplazar hijos con los nodos raíz de los documentos:
<DataSet>
<blank/>
<blank/>
</DataSet>
Y esperaba reemplazar los dos espacios en blanco con los elementos raíz de los dos documentos, pero obtengo "WRONG_DOCUMENT_ERR: un nodo se usa en un documento diferente al que lo creó". Traté de adoptar e importar los nodos raíz, pero obtengo el mismo error.
¿No hay alguna manera fácil de combinar documentos sin tener que leer y crear nuevos elementos para cada nodo?
EDIT: Código de la muestra de fragmentos Sólo tratando de mover una al documento "en blanco" por ahora ... Las funciones ImportNode y adoptNode no pueden importar/adoptar nodos del documento, pero no pueden importar el nodo de elemento y su subárbol ... o si lo hace, parece que no funciona para anexar/reemplazar.
Document xmlDoc; //created elsewhere
Document weather = getWeather(latitude, longitude);
Element weatherRoot = weather.getDocumentElement();
Node root = xmlDoc.getDocumentElement();
Node adopt = weather.adoptNode(weatherRoot);
Node imported = weather.importNode(weatherRoot, true);
Node child = root.getFirstChild();
root.replaceChild(adopt, child); //initially tried replacing the <blank/> elements
root.replaceChild(imported, child);
root.appendChild(adopt);
root.appendChild(imported);
root.appendChild(adopt.cloneNode(true));
Todos estos tire la DOMException: WRONG_DOCUMENT_ERR: Un nodo se utiliza en un documento diferente a la que lo creó.
Creo que tendré que averiguar cómo usar stax o simplemente volver a leer los documentos y crear nuevos elementos ... Sin embargo, parece un poco demasiado trabajo solo para combinar documentos.
¿Puedes publicar un código de ejemplo que muestre cómo estás tratando de combinarlos? – Jonik