JDOM Root-Element entfernen aber Rest behalten

Status
Nicht offen für weitere Antworten.

rapthor

Bekanntes Mitglied
Hallo,

ich habe mittels SOAP ein XML-Dokument folgenden Inhalts erhalten:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<GetFileResponse>
  <example-queries>
    <query>
      <description>Simple fulltext query on Shakespeare plays</description>
      <code>for $speech in //SPEECH[LINE &= 'love']
return $speech</code>
    </query>
    <query>
      <description>Fulltext query using near</description>
      <code>for $speech in //SPEECH[SPEAKER &= 'witch' and near(., 'fenny snake')]
return $speech</code>
    </query>
  </example-queries>
</GetFileResponse>

Nun möchte ich jedoch das in der SOAP-Antwort standardmäßig enthaltene <...Response>-Knötchen entfernen, ohne dabei die darunter befindlichen Elemente anzufassen. Denn eigentlich enthält das eigentliche XML-Dokument, das ich per SOAP erfrage, ja garkeinen <..Response>-Root-Knoten. Sondern vielmehr (in diesem Fall) einen <example-queries>-Root-Knoten.

Hat da jemand eine Lösung?
 

clemson

Bekanntes Mitglied
erzeuge dir doch einfach ein neues Document
Code:
Element get_file_response = document.getRootElement();
Element example_queries = get_file_response.getChild("example-queries");
Document new_root = new Document( example_queries );
 

rapthor

Bekanntes Mitglied
Irgendwie will das nicht so richtig klappen. Der Knoten "example-queries" ist bei der Aktion leer und das Dokument somit nicht in Ordnung :(
 

rapthor

Bekanntes Mitglied
Ja, wie gesagt, eines der Beispiele habe ich ja oben angeführt.

Ich habe das jetzt anders gelöst. Ich entferne aus demnach String umgewandelten Dokument einfach den String mit dem Knotennamen, den ich nicht mehr brauche.
 

clemson

Bekanntes Mitglied
rapthor hat gesagt.:
Ich entferne aus demnach String umgewandelten Dokument einfach den String mit dem Knotennamen, den ich nicht mehr brauche.

is halt nicht die schönste variante...

wenn ich zeit habe, werde ich das mal in jdom probieren - das müsste eigentlich lösbar sein...
 

clemson

Bekanntes Mitglied
Code:
/*
 * Created on Jan 9, 2006, 7:22:27 PM
 */
package org.test;

import java.io.File;
import java.io.IOException;
import java.io.StringReader;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;


/**
 * @author Müller Clemens
 */
public class Main {
	
	static XMLOutputter outputter = new XMLOutputter( Format.getPrettyFormat() );

	/**
	 * @param args
	 * @throws JDOMException
	 * @throws IOException
	 */
	public static void main( String[] args ) throws JDOMException, IOException {
		
		// Build the main file
		File source = new File("document.xml");
		SAXBuilder builder = new SAXBuilder(false);
		Document doc = builder.build( source );
		
		// get the root element
		Element root = doc.getRootElement();
		
		// get the element, which we want to be the new root
		Element example_queries = root.getChild("example-queries");
		
		// get the element as string
		String new_doc_str = outputter.outputString( example_queries );
		
		// build a new document out of the string
		Document new_doc = builder.build( new StringReader(new_doc_str)  );
		outputter.output( new_doc, System.out );
	}
}

so gehts...
 

rapthor

Bekanntes Mitglied
Hab es jetzt bei mir eingebaut und es funktioniert. Jedoch müsste man überlegen, ob dieses Verfahren bei größeren XML-Dokumenten nicht ziemlich aufwändig und dadurch langwierig wird. Weil man ja das gesamte Dokument nochmal neu aufbaut.

Danke Dir!
 

clemson

Bekanntes Mitglied
rapthor hat gesagt.:
Jedoch müsste man überlegen, ob dieses Verfahren bei größeren XML-Dokumenten nicht ziemlich aufwändig und dadurch langwierig wird. Weil man ja das gesamte Dokument nochmal neu aufbaut.

ja, das stimmt. aber ich habs mit
Code:
Document new_doc = new Document(doc.getRootElement().getChild("example-queries"));
probiert, und da sagt er mir, dass bereits ein wurzelelement vorhanden ist...
 

clemson

Bekanntes Mitglied
soda, jetzt hab ich die lösung gefunden (detach war die zaubermethode)...

Code:
/*
 * Created on Jan 9, 2006, 7:22:27 PM
 */
package org.test;

import java.io.File;
import java.io.IOException;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;


/**
 * @author Müller Clemens
 */
public class Main {
	
	static XMLOutputter outputter = new XMLOutputter( Format.getPrettyFormat() );

	/**
	 * @param args
	 * @throws JDOMException
	 * @throws IOException
	 */
	public static void main( String[] args ) throws JDOMException, IOException {
		
		// Build the main document
		File source = new File("document.xml");
		SAXBuilder builder = new SAXBuilder(false);
		Document doc = builder.build( source );
		
		// get the root element
		Element root = doc.getRootElement();
		
		// get the wanted element
		Element wanted_node = root.getChild("example-queries");
		
		// detach the element, so it can be set as a new root
		Element example_queries = (Element) wanted_node.detach();
		
		// build a new document
		Document new_doc = new Document( example_queries );	
		outputter.output( new_doc, System.out );
		
		// garbage collector ;-)
		root = null;
		wanted_node = null;
		example_queries = null;
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
F Aus XML mit JDOM aus Elementattributen Werte rauslesen XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D jdom, xml, login-system XML & JSON 4
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
P jdom XML-Encoding auslesen XML & JSON 12
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
B jdom: getChildren() problem XML & JSON 4
T Bild in XML per JDOM XML & JSON 4
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
T Elemente zählen mit JDOM in XML XML & JSON 7
B jdom document aus string erzeugen? XML & JSON 1
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
T XML mit JDOM auslesen => langsam? XML & JSON 7
B jdom outputter ohne attribute XML & JSON 2
C XML encoding UTF-8 und JDOM XML & JSON 4
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
R key aus xml lesen mittels jdom XML & JSON 5
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
X JDOM SAXBuilder Validationschema - Problem XML & JSON 8
G einzelne tags mit jdom auslesen XML & JSON 4
F XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE XML & JSON 4
K JDOM SAXBuilder einlesen XML & JSON 6
S Ausgabe "asXML" mit Jdom XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
G XML mit JDOM ausgeben [Klappe die 1Mio.ste] XML & JSON 2
F XML mit JDOM auslesen XML & JSON 2
D JDOM auf den PC machen XML & JSON 6
J JDOM Unicode XML & JSON 2
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
P JDOM Werte verändern XML & JSON 4
S OutOfMemory mit JDOM XML & JSON 6
S org.jdom.document in String umwandeln. XML & JSON 2
M ISO-8859-1 >> UTF-8 + JDOM + Verwirrung. XML & JSON 2
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
J JDOM mit XML-Schema XML & JSON 8
P HTML-Sting in JDOM XML & JSON 7
B JDOM && ObjectOutputStream XML & JSON 8
B Versionskonflikt bei JDOM XML & JSON 9
B JDom -- getChild() liefert nicht nachvollziehbar null XML & JSON 2
M JDOM parse Exception XML & JSON 3
G JDom encoding ändern XML & JSON 2
M XML Elemente mit JDOM durch Text ersetzen XML & JSON 2
R Problem bei Erstellung von XML(JDOM) XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben