Manuel Neuner
2006-07-19 11:31:49 UTC
Hi,
wie kann man einen Teil eines JDOM-Documents extrahieren und damit ein
neues Document erzeugen?
Im Konkreten habe ich ein XML-Dokument, das ich in eine SOAP-Nachricht
umwandeln möchte. Das funktioniert wie folgt:
private Document create(Document doc)
{
Element requestElement = doc.detachRootElement();
Element envelope = new Element("Envelope", env);
Element body = new Element("Body", env);
body.addContent(requestElement);
envelope.addContent(body);
return new Document(envelope);
}
Nun möchte ich die Antwort-SOAP-Nachricht gerne wieder in ein
gewöhnliches XML- bzw. JDOM-Document zurückwandeln. Hierzu löse ich die
Verbindung des Root-Elements und lasse mir das erste Body-Element
zurückgeben. Mit diesem möchte ich ein neues JDOM-Document erzeugen:
private Document extract(Document doc)
{
Element envelope = doc.detachRootElement();
Element body = envelope.getChild("Body", env);
List list = body.getChildren();
Iterator iterator = list.iterator();
Element response = (Element) iterator.next();
return new Document(response);
}
Hier erhalte ich jedoch folgende Fehlermeldung:
org.jdom.IllegalAddException: The Content already has an existing parent
"soap:Body"
Wie funktioniert das richtig?
TIA,
Manuel.
wie kann man einen Teil eines JDOM-Documents extrahieren und damit ein
neues Document erzeugen?
Im Konkreten habe ich ein XML-Dokument, das ich in eine SOAP-Nachricht
umwandeln möchte. Das funktioniert wie folgt:
private Document create(Document doc)
{
Element requestElement = doc.detachRootElement();
Element envelope = new Element("Envelope", env);
Element body = new Element("Body", env);
body.addContent(requestElement);
envelope.addContent(body);
return new Document(envelope);
}
Nun möchte ich die Antwort-SOAP-Nachricht gerne wieder in ein
gewöhnliches XML- bzw. JDOM-Document zurückwandeln. Hierzu löse ich die
Verbindung des Root-Elements und lasse mir das erste Body-Element
zurückgeben. Mit diesem möchte ich ein neues JDOM-Document erzeugen:
private Document extract(Document doc)
{
Element envelope = doc.detachRootElement();
Element body = envelope.getChild("Body", env);
List list = body.getChildren();
Iterator iterator = list.iterator();
Element response = (Element) iterator.next();
return new Document(response);
}
Hier erhalte ich jedoch folgende Fehlermeldung:
org.jdom.IllegalAddException: The Content already has an existing parent
"soap:Body"
Wie funktioniert das richtig?
TIA,
Manuel.