XML-Datei ein Array einlesen

Status
Nicht offen für weitere Antworten.

janat

Mitglied
Hallo zusammen,

Kann mir jemand sagen, wie ich eine xml-datei in ein Array einlese? Ich habe eine Schnittstelle, die ich benutzen kann. Sie kriegt aber xml-dile als byte[] übergeben.

Ich habe schon eine Vorstellung wie eine XML-Datei ausgelesen wird, aber wie kann man die Struktur von der XML-Datei in einem array beubehalten?


Gruß
janat
 

Sergeant_Pepper

Bekanntes Mitglied
Hallo janat,

in einem Array wird eine Menge gleichartiger Objekte abgelegt. Das bedeutet, dass die Objekte entweder alle zur gleichen Klasse gehören, bzw. dass ihre individuelle Klasse von einer gemeinsamen Basisklasse abgeleitet ist (oder eine Schnittstelle implementiert).

Die Elemente in einer XML-Struktur können sich ziemlich stark voneinander unterscheiden und sind meistens mehrfach ineinander verschachtelt. In einem Array werden Elemente sequenziell hintereinander abgelegt.

Also ist ein Array für sich genommen wohl nicht so geeignet für deine Anforderung. Vielleicht gibt es in deinen Daten Teilbereiche, in denen gleichartige Elemente mehrfach hintereinander vorkommen. Die könnte man in einem Array ablegen. Und dieses Array könnte eine Instanzvariable einer Klasse sein, welche das übergeordnete XML-Element repräsentiert.
 

Murray

Top Contributor
Vermutlich geht es um dieses Thema.
Liegt die XML-Datei denn bereits als Datei vor, oder baust Du die XML-Struktur in Deinem Code auf (entweder als String oder mit irgendeiner DOM-Bibliothek)?
Eine Datei könntest Du einlesen und in einen ByteArrayOutputStream wieder aussschreiben; danach kannst Du Dir von diesem ByteArrayOutputStream die kompletten Daten als Byte-Array abholen. Bei einem String kannst Du Dir mit getBytes( "utf-8") direkt ein Byte-Array besorgen.
 

Murray

Top Contributor
@Sergeant_Pepper:
Das glaube ich Dir gern; im Zusammenhang mit den anderen Thread sieht es für mich aber so aus, als wollte der TE den Inhalt einer XML-Datei einfach nur in ein byte[]-Array wandeln, weil das durch die zu nutzende Interface-Methode so vorgegeben ist. Dass dabei die eigentliche Struktur der XML-Datei auf der Strecke bleibt, ist klar.
 

Sergeant_Pepper

Bekanntes Mitglied
@Murray
Murray hat gesagt.:
im Zusammenhang mit den anderen Thread sieht es für mich aber so aus, als wollte der TE den Inhalt einer XML-Datei einfach nur in ein byte[]-Array wandeln
Ja, das würde ich auch so verstehen...

Vielleicht kann janat zur Klärung beitragen? ???:L :D
 

janat

Mitglied
Vielen Dank für Eure Antwortwen!
Missverständnisse kommen bestimmt davon, dass ich wenig Ahnung von XML habe und mich nicht klar ausgedrückt habe.

Ja, ich muss die xml-datei in ein byte-Array umwandeln, um nachher den an die Mehtode insert (string key, byte[] data) zu übergeben.

So wie ich verstehe, soll ich zuerst ein XML-Document in meinem Programm zusammenzubauen. Versuche gerade, rauskriegen, wie das geht.

Gruß
janat
 

janat

Mitglied
Hallo zusammen,

jetzt habe ich es hingekriegt, eine XML-Document zu erstellen. Benutze dabei org.w3c.dom. Jetzt stehe ich vor dem Problem, wie ich das Documetn in ein byte [] schreibe.

Kann mir jemand da weiterhelfen.
 

Murray

Top Contributor
In etwa so:
Code:
import java.io.ByteArrayOutputStream;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.Document;

...


		Document doc = ...; //--- das auszugebende Dokument
                byte[] ba = null;
		try {
			//--- Transformer vorbereiten und diverse Optionen setzen
			Transformer trans = TransformerFactory.newInstance().newTransformer();
			trans.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "no");
			trans.setOutputProperty( OutputKeys.INDENT, "yes");
			trans.setOutputProperty( OutputKeys.STANDALONE, "yes");
			trans.setOutputProperty( OutputKeys.ENCODING, "ISO-8859-1");
			trans.setOutputProperty( OutputKeys.METHOD, "xml");

			//--- Quelle fuer die Transformation vorbereiten
			DOMSource src = new DOMSource( doc);

			//--- ByteArrayOutputStream als Ziel fuer die Ausgabetransformation erzeugen
			ByteArrayOutputStream baos = new ByteArrayOutputStream();

			//--- DOM in den Ausgabedatenstrom transformieren
			trans.transform( src, new StreamResult( baos));

			//--- Byte-Repraesentation abholen
			ba = baos.getByte();

		} catch ( Exception e) {
			e.printStackTarce();
		};
 

janat

Mitglied
Vielen Dank, das funktioniert!

Ich habe allerdings noch 2 Fragen.

1) Die APIs, die ich benutze, haben Methoden:
insert (String key, byte[] data) und
byte [] query (String key, String queryStr).
Die erste fügt ein XML-Dokument ein und die zweite soll dann nach dem Schlüssel, der

angegebene Xpath beinhaltet, suchen.

insert habe ich schon hingekriegt. Es ist mir nur aufgefallen, dass ich org.w3c.dom zum

erstellen von meinem xml-document benutze und die Implementierung der APIs dom4j. Kann

das zu Problemen führen? Gibt es dann Unstimmigkeiten?

2) Die zweite Frage war über die Zeitabfragen aus dem XPath. Habe sie in ein neues Thread übertragen, da sie zu dem Thema hier gar nicht passte.

Gruß
janat
 

Murray

Top Contributor
janat hat gesagt.:
Es ist mir nur aufgefallen, dass ich org.w3c.dom zum

erstellen von meinem xml-document benutze und die Implementierung der APIs dom4j.
Eigentlich ist XML immer XML, egal von welchem Framework es erzeugt worden ist. Solange das XML "well-formed" ist (anders lässt es sich mit W3C-DOM auch nicht erzeugen), wird es von einem beliebigen XML-Parser auch einlesbar sein (ansonsten hätte dieser Parser einen Fehler).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
T Tags in XML Datei mit Java erstellen XML & JSON 3
S XML Datei speichern nicht möglich XML & JSON 13
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
MiMa Buch Metadaten aus XML Datei parsen XML & JSON 48
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
R xlsx-Datei mit Apache POI einlesen XML & JSON 18
S Validierung einer XML-Datei - Führende Leerzeichen und Tabs XML & JSON 10
S CSV Datei einlesen und XML Ausgeben XML & JSON 2
U jar Datei mit ant erstellen XML & JSON 1
P wie kriege ich eine *.dtd Datei mit in die ausführbare *.jar? XML & JSON 2
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
D XML-Datei per Button erstellen XML & JSON 3
K JAR-File mit XML-Datei XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
E JTreedaten in eine XML Datei speichern XML & JSON 3
D Int-Werte in XML-Datei schreiben (DOM) XML & JSON 2
B xsd-Datei ins jar file XML & JSON 5
T Formulardaten in XML Datei speichern XML & JSON 5
H Wsdl datei XML & JSON 2
D Große XML-Datei in einzel Dateien splitten XML & JSON 3
S Neue Inhalte in XML-Datei einfügen XML & JSON 0
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
M XML-Datei mit JAXB und 2 Namespaces XML & JSON 0
J XML - Datei wird nicht ganz angezeigt XML & JSON 2
P (Eclipse)Ant Script, .jar Datei erstellen mit MANIFEST.MF XML & JSON 12
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
E ResultSet als XML Datei speichern XML & JSON 7
M XStream, CSV Datei XML & JSON 9
A Frage zu bestehender XML Datei XML & JSON 6
A Simple Constructor Injection Datei-Pfad XML & JSON 6
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
A XML datei lesbar speichern (eingerückt) XML & JSON 7
M XML Datei Parsen XML & JSON 4
Airwolf89 HTML Datei mit SAXBuilder laden hängt sich auf XML & JSON 4
N Java Code aus XML Datei generieren XML & JSON 8
D Aus lesen einer XML-Datei ( 1 root, 3 childs) XML & JSON 7
D Wie XML Datei einlesen und HTML entities übernehmen? XML & JSON 3
R XLM Datei lesen Ändern (kompliziertes Search and Replace) und Speichern XML & JSON 12
K Kurze XML Datei Parsen XML & JSON 5
S XSD-Datei zulässige Werte auslesen XML & JSON 3
M XML Datei heapspace erreicht XML & JSON 3
M Große Datei auslesen/in dieser suchen XML & JSON 2
S Konforme XML Datei über XSD erstellen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4
T Inhalt einer .xml Datei auf Javaoberfläche wiedergeben XML & JSON 4
M XML Datei drucken XML & JSON 8
T Daten aus Programm in XML Datei speichern XML & JSON 2
D XSD Datei erstellen XML & JSON 4
L [SAX] Geschachtelte XML Datei parsen XML & JSON 3
E XML Datei mit DOM auslesen (Text mit Attributen) XML & JSON 2
G txt. Datei in xml datei konvertieren XML & JSON 21
K XML Datei in ein Java package „einbinden" XML & JSON 3
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
L xml Datei parsen ohne End-Tag XML & JSON 6
C if-Abfrage mit Datei Variable aus XML-Datei XML & JSON 2
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
sylo DOM Document in XML Datei schreiben XML & JSON 5
F XML Datei in Java einlesen XML & JSON 4
J Objektstruktur aus XML-Datei erzeugen XML & JSON 21
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
E XML Datei einlesen und Elemente in der Console ausgeben XML & JSON 6
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
ARadauer Aus XML Datei Objekte erstellen... XML & JSON 3
N MalformedByteSequenceException bei Lesen aus XML Datei XML & JSON 2
H xml-Datei mit Attributen einlesen XML & JSON 3
A XML-Datei: Ab wann kritische Größe erreicht? XML & JSON 4
multiholle XML Datei elegant verarbeiten XML & JSON 14
M XMI-Datei auslesen XML & JSON 4
T Ließt keine XML Datei XML & JSON 2
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
M xml - datei erstellen XML & JSON 2
T Wie einen String(XML Inhalt) in eine XML Datei speichern? XML & JSON 8
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
H XML-Datei in einzelne XML-Dateien zerlegen XML & JSON 2
G Tags oder Zeilen der Not-Validen XML-Datei XML & JSON 7
C Suche in XML-Datei XML & JSON 6
D Zeilennummer in der XML - Datei XML & JSON 5
S Einlesen einer xml Datei XML & JSON 4
M Datei parsen XML & JSON 5
S PDF Erzeugung - Probleme mit der XML Datei bei Schema-Infos XML & JSON 2
S XML Datei einlesen, aber root überspringen XML & JSON 2
T Werte in XML Datei an entsprechender Stelle einfügen XML & JSON 3
Saxony unbekannte XML Datei parsen und ausgeben XML & JSON 10
L XML Datei in Java angeben Pfad? XML & JSON 3
A Mehrere Anwender sollen auf eine XML-Datei zugreifen XML & JSON 4
A SVG Datei auslesen und Batik XML & JSON 1
N neue XML-Datei erstellen mit vorhandener Struktur XML & JSON 18
D XML Datei innerhalb einer JAR Datei parsen XML & JSON 2
M brauche große XML-Datei für XPath-Tests XML & JSON 4
L mit Java eine HTML-Datei erstellen XML & JSON 3
L bz2-Datei parsen XML & JSON 9
A xml-schema aus wsdl auslagern in eine eigene xsd-Datei XML & JSON 3
S objekte in xml datei packen (JAXB) XML & JSON 5

Ähnliche Java Themen

Neue Themen


Oben